java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Mas se você estiver usando o JUnit 3.X, observe que o nome da classe é diferente:
java -cp .:/usr/share/java/junit.jar junit.textui.TestRunner [test class name]
Pode ser necessário adicionar mais JARs ou diretórios com seus arquivos de classe ao caminho de classe e separá-lo com ponto e vírgula (Windows) ou dois pontos (UNIX / Linux). Depende do seu ambiente.
Editar: adicionei o diretório atual como exemplo. Depende do seu ambiente e de como você constrói seu aplicativo (pode ser bin / ou build / ou mesmo my_application.jar etc). Nota O Java 6+ suporta globs no caminho de classe, você pode:
Voto negativo. Para o JUnit 4.x, não está certo. Suas instruções indicam "Não foi possível encontrar a classe: [nome da classe de teste]" Mesmo quando [nome da classe de teste] está no caminho de classe.
Philip Rego
117
Maneira Maven
Se você usa o Maven, pode executar o seguinte comando para executar todos os seus casos de teste:
mvn clean test
Ou você pode executar um teste específico como abaixo
mvn clean test -Dtest=your.package.TestClassName
mvn clean test -Dtest=your.package.TestClassName#particularMethod
Se você deseja ver o rastreamento da pilha (se houver) no console, em vez dos arquivos de relatório na pasta target \ surefire-reports, configure a propriedade do usuário surefire.useFile como false. Por exemplo:
mvn clean test -Dtest=your.package.TestClassName -Dsurefire.useFile=false
Maneira Gradle
Se você usa Gradle, pode executar o seguinte comando para executar todos os seus casos de teste:
gradle test
Ou você pode executar um teste específico como abaixo
gradle test --tests your.package.TestClassName
gradle test --tests your.package.TestClassName.particularMethod
Se desejar obter mais informações, considere opções como --stacktrace, ou --info ou --debug.
Por exemplo, quando você executa o Gradle com o nível de registro de informações --info, ele mostra o resultado de cada teste enquanto eles estão em execução. Se houver alguma exceção, ele mostrará o rastreamento da pilha, indicando qual é o problema.
gradle test --info
Se você deseja ver os resultados gerais do teste, pode abrir o relatório no navegador, por exemplo (Abra-o usando o Google Chrome no Ubuntu):
google-chrome build/reports/tests/index.html
Maneira da formiga
Depois de configurar o arquivo de construção Ant, build.xml, você pode executar seus casos de teste JUnit na linha de comando, como abaixo:
Gosto que esta resposta tenha exemplos para várias tecnologias, parabéns!
Josie Thompson
e os testes de groovy usando a última abordagem?
Midori
1
Bem merecido distintivo dourado;)
Eric Duminil
Obrigado pela versão para gradle! Parabéns!
ady 22/01
52
A resposta que o @lzap deu é uma boa solução. No entanto, gostaria de acrescentar que você deve adicionar. para o caminho da classe, para que seu diretório atual não seja deixado de fora, resultando em suas próprias classes. Isso aconteceu comigo em algumas plataformas. Portanto, uma versão atualizada para o JUnit 4.x seria:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Teve o mesmo problema com o JUnit 4.12. Veio com uma solução semelhante, mas não funcionou para mim, falhando ao carregar o JUnitCore. Eu basicamente mudei para o JUnit 4.8.2, pois não requer a inclusão do hamcrest-core.jar no caminho de classe.
Vladimir Nazarenko
Confirmado que isso deve ser feito com o JUnit 4.12. +1.
rayryeng
Isso funcionou para mim:java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
Raffi Khatchadourian
11
No windows é
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass [nome da classe de teste sem extensão .class]
por exemplo:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...e assim por diante, se houver mais de uma classe de teste.
-cp representa o caminho da classe e o ponto (.) representa o caminho de classe existente enquanto o ponto-e-vírgula (;) anexa o jar fornecido ao caminho de classe, como no exemplo acima, junit-4.8.2 agora está disponível no caminho de classe para executar a classe JUnitCore que aqui usamos para executar nossas classes de teste.
A instrução da linha de comando acima ajuda a executar testes junit (versão 4+) no prompt de comando (ou seja, MSDos).
Nota: O JUnitCore é uma fachada para executar testes de junit, essa fachada está incluída em mais de 4 versões do junit.
Não pedi para você manter sua resposta breve. Pedi para adicionar alguma explicação (pelo menos uma breve explicação). É uma boa prática explicar como sua resposta funciona. Os leitores podem entender, assim como fazer votos positivos.
Mohit Jain
então se eu tivesse um jar de teste suplementar e o jar vanilla junit, eu teria que ter os dois no comando java -cp para que algo realmente funcionasse? Existe uma maneira de contornar tudo isso em uma linha de comando para que eu não precise digitar tantas coisas?
Ungeheuer
5
Na verdade, você também pode tornar o teste Junit um jar executável e chamar o jar executável como java -jar
No Eclipse, clique com o botão direito do mouse no seu projeto JUnit -> Clique em Exportar -> Escolha Java-> Arquivo Jar
Executável
4
Se o seu projeto for baseado em Maven, você poderá executar todos os métodos de teste da classe de teste CustomTest, que pertence ao módulo 'my-module', usando o seguinte comando:
mvn clean test -pl :my-module -Dtest=CustomTest
Ou execute apenas 1 método de teste myMethod da classe de teste CustomTest usando o próximo comando:
mvn clean test -pl :my-module -Dtest=CustomTest#myMethod
Por isso eu disse "se o seu projeto é baseado em formigas". Observe também que o OP pode não saber sobre formiga.
cherouvim
Eu tinha esse dillema, os arquivos de teste de unidade não estavam na pasta marcada como origem pelo eclipse. Esse projeto usa o ant para construir, essa era a maneira correta de executar esses testes JUnit.
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
trabalhou para mim. Observe o ponto final - é importante!Respostas:
Para o JUnit 5.x , é:
Encontre um breve resumo em https://stackoverflow.com/a/52373592/1431016 e detalhes completos em https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher
Para o JUnit 4.X , é realmente:
Mas se você estiver usando o JUnit 3.X, observe que o nome da classe é diferente:
Pode ser necessário adicionar mais JARs ou diretórios com seus arquivos de classe ao caminho de classe e separá-lo com ponto e vírgula (Windows) ou dois pontos (UNIX / Linux). Depende do seu ambiente.
Editar: adicionei o diretório atual como exemplo. Depende do seu ambiente e de como você constrói seu aplicativo (pode ser bin / ou build / ou mesmo my_application.jar etc). Nota O Java 6+ suporta globs no caminho de classe, você pode:
Espero que ajude. Escreva testes! :-)
fonte
Maneira Maven
Se você usa o Maven, pode executar o seguinte comando para executar todos os seus casos de teste:
Ou você pode executar um teste específico como abaixo
Se você deseja ver o rastreamento da pilha (se houver) no console, em vez dos arquivos de relatório na pasta target \ surefire-reports, configure a propriedade do usuário surefire.useFile como false. Por exemplo:
Maneira Gradle
Se você usa Gradle, pode executar o seguinte comando para executar todos os seus casos de teste:
Ou você pode executar um teste específico como abaixo
Se desejar obter mais informações, considere opções como --stacktrace, ou --info ou --debug.
Por exemplo, quando você executa o Gradle com o nível de registro de informações --info, ele mostra o resultado de cada teste enquanto eles estão em execução. Se houver alguma exceção, ele mostrará o rastreamento da pilha, indicando qual é o problema.
Se você deseja ver os resultados gerais do teste, pode abrir o relatório no navegador, por exemplo (Abra-o usando o Google Chrome no Ubuntu):
Maneira da formiga
Depois de configurar o arquivo de construção Ant, build.xml, você pode executar seus casos de teste JUnit na linha de comando, como abaixo:
Você pode seguir o link abaixo para ler mais sobre como configurar testes JUnit no arquivo de construção do Ant: https://ant.apache.org/manual/Tasks/junit.html
Maneira normal
Se você não usar o Maven, Gradle ou Ant, poderá seguir o seguinte caminho:
Primeiro de tudo, você precisa compilar seus casos de teste. Por exemplo (no Linux):
Em seguida, execute seus casos de teste. Por exemplo:
fonte
A resposta que o @lzap deu é uma boa solução. No entanto, gostaria de acrescentar que você deve adicionar. para o caminho da classe, para que seu diretório atual não seja deixado de fora, resultando em suas próprias classes. Isso aconteceu comigo em algumas plataformas. Portanto, uma versão atualizada para o JUnit 4.x seria:
fonte
Verifique se JUnit.jar está no seu caminho de classe e, em seguida, chame o corredor da linha de comandos no console
Referência: junit FAQ
fonte
Com o JUnit 4.12, o seguinte não funcionou para mim:
Aparentemente , a partir do JUnit 4.11 em diante, você também deve incluir
hamcrest-core.jar
no seu caminho de classe:fonte
java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
No windows é
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[nome da classe de teste sem extensão .class]por exemplo:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
e assim por diante, se houver mais de uma classe de teste.-cp representa o caminho da classe e o ponto (.) representa o caminho de classe existente enquanto o ponto-e-vírgula (;) anexa o jar fornecido ao caminho de classe, como no exemplo acima, junit-4.8.2 agora está disponível no caminho de classe para executar a classe JUnitCore que aqui usamos para executar nossas classes de teste.
A instrução da linha de comando acima ajuda a executar testes junit (versão 4+) no prompt de comando (ou seja, MSDos).
Nota: O JUnitCore é uma fachada para executar testes de junit, essa fachada está incluída em mais de 4 versões do junit.
fonte
Na verdade, você também pode tornar o teste Junit um jar executável e chamar o jar executável como java -jar
fonte
Se o seu projeto for baseado em Maven, você poderá executar todos os métodos de teste da classe de teste CustomTest, que pertence ao módulo 'my-module', usando o seguinte comando:
Ou execute apenas 1 método de teste myMethod da classe de teste CustomTest usando o próximo comando:
Para essa capacidade, você precisa do Maven Surefire Plugin v.2.7.3 + e Junit 4. Mais detalhes estão aqui: http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html
fonte
Pessoalmente, eu usaria o corredor JUnit Maven surefire para fazer isso.
fonte
Como alternativa, você pode usar os seguintes métodos na classe JunitCore http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html
execute (com Request, Class classes e Runner) ou runClasses do seu arquivo java.
fonte
Se você projetar com base em formigas, poderá fazer algo assim no console:
Se isso não funcionar, mas o seu projeto ainda for baseado em formigas, você poderá executar
ant -p
para listar os principais destinos do projeto.fonte