Pergunta

Tenho uma aplicação web básica (Dynamic Web Project em eclipse) com um projeto EAR associado. Eu estou tentando ter certeza de que meus JUnit código de teste fica de fora do arquivo EAR implantação.

No meu projeto web Eu tenho uma pasta de origem chamado "src" e um chamado "teste". Eu preciso para manter os arquivos .class da fonte de "teste" pasta fora da orelha quando eu exportá-lo usando o eclipse.

Eu sei que isso é trivial usando formiga, mas parece impossível usando eclipse .. projeto clique direito e exportar o arquivo ear .. as classes de teste são sempre incluído.

Se eu editar manualmente o arquivo .O ajuste / org.eclipse.wst.common.component.xml para remover a tag associada ao teste de pasta funciona, mas se alguns outros desenvolvedores mudança qualquer coisa relacionada ao caminho de construção, ele é regenerado ...

Am I faltando alguma coisa óbvia .. Eu pesquisei como louco sem sucesso .. verificado docs do Eclipse e estou em uma perda ..

Foi útil?

Solução

Não parece ser diretamente possível, o que é bizarro. Aqui está um par de soluções alternativas que você poderia tentar.

Note que eu mover os arquivos Java a partir do projeto web a um projeto Java (este é provavelmente uma boa prática a seguir de qualquer maneira). De qualquer maneira criar outro projeto Java "teste" e mover as fontes de teste para esse projeto. Seu projeto de teste declara o "principal" projeto Java como uma dependência para que ele tenha acesso aos tipos de testes, mas não está incluído na guerra, então as classes de teste não será implantado.

Como alternativa, se você quiser manter as fontes em um projeto, você pode configurar o projeto de teste para usar os recursos vinculados. Eu afixei outra resposta que mostra como você pode usar recursos vinculados para compartilhar locais de origem entre projetos. Com esta abordagem das fontes de teste ainda não estão no caminho de construção para o projeto principal, por isso não vai ser empacotado na jarra, mas estão fisicamente localizados no projeto para controle de origem é mais simples.

Outras dicas

Estou fazendo algo semelhante, exceto com PDE, usando Eclipse 3.7. Estou implantando Eclipse / OSGi plugins / pacotes, e têm dois diretórios de origem java: src e teste

Eu tenho mexido o conteúdo de dois arquivos de projeto Eclipse para código de teste separada da compilação.

.classpath :

<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry export="false" kind="src" path="test"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry export="false" kind="lib" path="/thirdparty/junit/junit.jar"/>
    <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

Essas mudanças foram motivadas pela leitura este

Eu não sei se isso vai se aplicar à sua situação, mas eu também tive que modificar um build.properties arquivo, para excluir os resultados da compilação 'teste' a partir do arquivo jar produzido.

source.optimizing.jar = src/
#This doesn't contain test/ because we don't want it in the build.

bin.includes = META-INF/,\
               optimizing.jar
#The junit.jar is also exluded               

Quando eu construir o projeto inteiro, os arquivos de teste estão completamente ausentes.

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