Como padrão, o diretório de trabalho para configurações de lançamento JUnit no Eclipse?

StackOverflow https://stackoverflow.com/questions/119832

Pergunta

código de Nossa Java (não o código de teste) lê os arquivos do diretório atual, o que significa que os que trabalham necessidades de diretório para ser configurado corretamente sempre que executar o código.

Ao lançar um teste JUnit de dentro do Eclipse, uma configuração de lançamento é automaticamente criado. O problema é que o diretório de trabalho em que a configuração de lançamento é sempre por padrão, o diretório do projeto de raiz que é sempre errado, o teste falhar, eu tenho que abrir a janela de configuração de lançamento, alterar o diretório de trabalho e relançar o teste. Isso é muito irritante. A mesma coisa acontece quando eu executar um único método de teste.

Eu já considerado estes:

  • Alterar o diretório atual do código de teste -. Não é possível por design
  • Ao abrir um arquivo, passar um parâmetro diretório pai -. Muito difícil, já que isso afetaria muitos lugares
  • Use o Copiar lançamento de configuração recurso do Eclipse para criar novas configurações de lançamento partir dos já existentes que já possuem um conjunto diretório de trabalho correto. Isto realmente não faz sentido aqui, desde que eu gostaria de lançar um teste ou um método de teste rapidamente, apenas invocando "executar este teste / método como teste JUnit".

Em suma, parece que é de responsabilidade de Eclipse, não o código.

Existe uma maneira de definir o padrão diretório de trabalho para todas as futuras, recém-criado configurações de lançamento JUnit?

Foi útil?

Solução 2

Tanto quanto eu posso dizer, não há nenhuma maneira de mudar o diretório de trabalho padrão para futuras configurações de lançamento JUnit no Eclipse 3.4. Este problema também tem sido relatado como um bug no banco de dados bug Eclipse.

No entanto, é possível em IDEA. Há o Editar Defaults botão para definir todos os tipos de padrões para cada tipo de lançamento de configuração separadamente.

Outras dicas

Esta é uma resposta subjetiva:

Eu acredito que você está fazendo seus testes errado, você não deve ser carregar os arquivos do JUnit usando caminhos relativos ou completos, mas em vez disso, tê-los como recursos no projeto (adicioná-los no caminho de construção) e carga -los como recursos nos testes JUnit. Dessa forma, se algo muda no sistema de arquivos, alguém usa um sistema de arquivos diferente ou IDE, mas ainda tem-los no caminho de construção (como pastas de origem) você não vai ter um problema.

Eu não tenho certeza se é isso que você quer dizer, mas se você realmente quer mudá-lo ir para as opções Run Configuração -> Seu JUnit -> guia Argumentos, na parte inferior (Eclipse 3.4) você vê Diretório de Trabalho, clique em ' outro' e transformá-lo de lá.

Com Eclipse 3 você pode definir o seu diretório de trabalho. Ir para executar / debug configuração -> guia Argumentos. No diretório de trabalho selecione "outro" e entrar na raiz do seu teste

Eu não encontrei uma possibilidade de fazer isso, mas o que você pode fazer é usar:

getClass () getResourceAsStream (filename);.

getClass () getClassLoader () getResourceAsStream (filename);..

Este métodos localiza um recurso no classpath. O primeiro é relativo ao local da classe, o segundo é relativo a qualquer classpath "entrada de raiz". Você pode, então, por exemplo, adicionar o diretório raiz do projeto ao classpath.

Isto não funciona no entanto, se você quiser escrever para um arquivo bem.

Se os testes dependem do diretório de trabalho atual, acho que é de responsabilidade de seus testes para configurar corretamente que o diretório de trabalho, e para configurar suas classes para ser testado para ponto que diretório.

Se você tem uma superclasse para a maioria de seus testes, escrever uma constante dentro dele. Ou: se você tiver uma superclasse para a maioria de seus testes, escrever um método de configuração @Before. Ou: se você não tiver uma superclasse para a maioria de seus testes, escrever uma constante em alguma classe da base de código de teste

.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top