我想只运行我的单元测试的一个子集,由特定的测试定义@Category.
所以我读了几个SO问题,比如这个(这正是我要找的),还有这个问题.
我的问题的解决方案似乎是由ClasspathSuite项目提供的.所以我开始编写定义我的测试类别的接口NewTest和OldTest接口.然后,我创建了AllTests套件:
@RunWith(ClasspathSuite.class)
public class AllTests { }
Run Code Online (Sandbox Code Playgroud)
之后,我创建了一个AllNewTests套件:
@RunWith(Categories.class)
@IncludeCategory(NewTest.class)
@SuiteClasses( { AllTests.class })
public class AllNewTests { }
Run Code Online (Sandbox Code Playgroud)
最后,我创建了两个JUnit类,每个类别一个:
@Category(NewTest.class)
public class SomeNewTests {
// some tests...
}
@Category(OldTest.class)
public class SomeOldTests {
// some tests...
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我运行AllTests,Eclipse会启动我项目的所有测试,而Maven会因为没有找到测试而失败:
mvn test -Dtest=AllTests
...
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running my.company.AllTests
Tests run: 0, Failures: 0, Errors: 0, Skipped: …Run Code Online (Sandbox Code Playgroud)