如何使用命令行中的junit运行多个测试类?

Ida*_*Ida 4 testing junit command-line

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

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

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

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

谢谢.

Jef*_*ica 5

基本上有两种方法可以做到这一点:使用shell脚本来收集名称,或者使用ClassPathSuite搜索java类路径来查找与给定模式匹配的所有类.

类路径套件方法对Java来说更自然.这个答案描述了如何最好地使用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
Run Code Online (Sandbox Code Playgroud)