testing - 如何从命令行使用 junit 运行多个测试类?

标签 testing command-line junit

我知道要从命令行运行 junit,您可以这样做:

java org.junit.runner.JUnitCore TestClass1 [...其他测试类...]

但是,我想一起运行许多测试,手动输入“TestClass1 TestClass2 TestClass3 ...”效率很低。

目前我将所有测试类组织在一个目录中(该目录具有指示包的子目录)。有什么方法可以让我从命令行运行 junit 并让它一次执行所有这些测试类?

谢谢。

最佳答案

基本上有两种方法可以做到这一点:要么使用 shell 脚本收集名称,要么使用 ClassPathSuite 在 java 类路径中搜索与给定模式匹配的所有类。

类路径套件方法对于 Java 来说更为自然。 This SO answer描述了如何最好地使用 ClassPathSuite。

shell 脚本方法有点笨拙并且特定于平台,并且可能会遇到麻烦,具体取决于测试的数量,但如果您出于任何原因试图避免使用 ClassPathSuite,它就可以解决问题。这个简单的假设每个测试文件都以“Test.java”结尾。

#!/bin/bash
cd your_test_directory_here
find . -name "\*Test.java" \
    | sed -e "s/\.java//" -e "s/\//./g" \
    | xargs java org.junit.runner.JUnitCore

关于testing - 如何从命令行使用 junit 运行多个测试类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13022990/

相关文章:

c++ - 如何在 CMake 中设置编译标志?

java - 适当的方法封装用于单元测试

linux - 使用 hexdump 仅输出 ASCII

eclipse - JUnit 4 中是否有与 testNG 的 @BeforeSuite 等效的东西?

java - 如何在 Java-EE 中模拟通过 @Resource 注入(inject)的 SessionContext?

ruby - #<Class :0x94b626c> 的未定义方法 `valid?'

ruby-on-rails - 如何一步建立一个带有子工厂的父工厂以通过验证

python - django 休息细节_路线测试

带有基类和子类的 Python 单元测试

git - 是否可以设置 git merge 进行自动解析? (git rerere)