java – 您可以从命令行运行所有JUnit测试,而不显式列出它们?

如果测试类和JUnit都在类路径上,则可以从命令行运行JUnit测试,如下所示:

java org.junit.runner.JUnitCore TestClass1 TestClass2

现在,有没有办法在包(和子包)中运行所有测试?

我正在寻找类似的东西

java org.junit.runner.JUnitCore com.example.tests.testsIWantToRun.*

有没有一个简单的方法(不涉及maven或ant)?

解决方法

Junit允许您定义
suites的测试.每个套件定义了一组测试,并运行该套件会导致所有的测试运行.我所做的是为每个包定义一个套件,列出该包的测试类以及任何子包的套件:

package com.foo.bar;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

import com.foo.bar.baz.Suite_baz;

@RunWith(Suite.class)
@Suite.SuiteClasses({
    ThisTest.class,ThatTest.class,TheOtherTest.class,Suite_baz.class,})
public class Suite_bar {
}

这不是完全不费力的.您必须构建套件并使用新的测试类手动更新它们.我想,如果有人想要,自动生成这些Java程序并不难.

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。