JUnit方法级别类别不适用于PowerMockRunner
给定这个测试类JUnit方法级别类别不适用于PowerMockRunner,junit,powermock,Junit,Powermock,给定这个测试类 @PowerMockIgnore("UnitTest") @Category(UnitTest.class) @RunWith(PowerMockRunner.class) public class SomeClass { @Test @Category(SlowTest.class) public void SlowMethod(){...} } 还有一套测试套件 @RunWith(Ca
@PowerMockIgnore("UnitTest")
@Category(UnitTest.class)
@RunWith(PowerMockRunner.class)
public class SomeClass {
@Test
@Category(SlowTest.class)
public void SlowMethod(){...}
}
还有一套测试套件
@RunWith(Categories.class)
@SuiteClasses({AllUnitTestSuite.class})
@ExcludeCategory(SlowTest.class)
public class FastUnitTestSuite {
}
当我运行FastUnitTestSuite时,它也会运行SlowMethod,尽管它属于SlowTest类别。
我可以使用PowerMockIgnore和多个类别排除慢速测试类。在使用PowerMockRunner时,我如何排除慢速测试方法?如果您想在不同的测试运行程序中使用
PowerMock
,应该使用
您可以在中看到一个示例。谢谢gontard!以下是我所改变的:
@PowerMockIgnore({ "org.mockito.*" })
@Category(UnitTest.class)
public class SomeClass {
@Rule
public PowerMockRule rule = new PowerMockRule(); //it has to be public
@Test
@Category(SlowTest.class)
public void SlowMethod(){...}
}
我还必须将这些lib添加到我的类路径中:powermock-module-junit4-rule、powermock classloading base、powermock classloading xstream、xpp3_min由于类别中的下一行,所以出现了这个问题。方法HasCorrectCategoryNotation下的CategoryFilter文件
if (fIncluded == null || fIncluded.isAssignableFrom(each))
- 即使类类型相同或处于继承状态,这也将失败,因为
由类别类装入器装入,而fIncluded
由PowerMockRunner类装入器装入每个