Substitua o caminho relativo para o diretório pai pelo diretório raiz dinâmico de um projeto Node.js.

Pesquisa e destino relativos desnecessários exigem em seus testes de unidade

TLDR;

Impedir que futuras alterações de diretório prejudiquem sua agitação em projetos node.js testados em unidades

O comando

LC_CTYPE=C find ./test/unit/ -type f -exec sed -i ".original" "s#'../../../../..#process.cwd() + '#g" {} ;

Edição Integral

Todos nós amamos a elegância e a simplicidade de um módulo “faça apenas uma coisa e faça bem”.

Ainda assim, muitos de nossos projetos são para agradar ao cliente em grande escala . Embora uma das alegrias de trabalhar em um projeto de grande escala seja vê-lo evoluir com o tempo, essa alegria pode se transformar em tristeza quando você está constantemente mudando os valores para acompanhar as mudanças.

Pode ser comum no código de teste referir-se ao módulo sendo testado, exigindo-o por meio de um caminho acima do diretório de teste. Costumo ver os desenvolvedores fazerem isso, mesmo quando process.cwd()(ou uma instrução equivalente em outro proglang) seja suficiente. Se este for o caso em seu projeto, você pode fazer uma missão rápida de busca e destruição para corrigir esta situação, evitando que quaisquer mudanças futuras na estrutura do projeto tomem seu precioso tempo.

O Comando (novamente)

LC_CTYPE=C find ./test/unit/ -type f -exec sed -i ".original" "s#'../../../../..#process.cwd() + '#g" {} ;

A explicação

  • LC_TYPEEvite illegal byte sequencereclamações no OS X
  • find Obtenha a lista de arquivos
  • ./test/unit/ Substitua este caminho por onde você deseja pesquisar
  • sed Faça a sua substituição
  • ".original"Faça backups das versões originais dos arquivos sedmodifica
  • #Use algo diferente 'para delimitar em uma expressão regular
  • g Global

Limpar

Você pode remover os arquivos originais assim rm -rf test/unit/**/**/**/*.original