我有一堆在其中有多个测试的类。是否可以从3个类中运行所有测试,然后从另一个类中运行一个或两个测试?
我认为这样的事情会起作用,但我不能让它运行:
mvn -Dtest=WTest,XTest,YTest,ZTest#thisTest test
我想在W,X和YTest类中运行所有测试,并且只在ZTest类中测试名为thisTest的测试。
答案 0 :(得分:1)
我不确定这实际上是否受到支持。花了最后半小时左右查看JUnit4Provider
的源代码,似乎surefire将以'全班模式'(当您指定测试类的名称)或'单独方法模式'(当您在测试类中指定方法的名称),但不能同时组合两者。
但是,我确实找到了解决方法。你应该能够做到这一点:
mvn -Dtest=xxx.xxx.WTest#*Test,xxx.xxx.xxx.XTest#*Test,xxx.xxx.xxx.YTest#*Test,xxx.xxx.xxx.ZTest#thisTest test
基本上,您使用*Test
通配符以'个别方法模式'运行测试,以指定WTest
,XTest
和YTest
中的所有测试方法 - 惠斯特只在thisTest
中运行ZTest
。这显然假设测试类中方法的名称以Test
请注意,为了实现这一点,我必须使用完全限定的类名(这是xxx.xxx.xxx应该显示的名称)。