我有两个逻辑类别的测试:简单的功能单元测试(通过/失败)和仅用于度量/诊断的基准性能测试。
目前,我在一个类中拥有所有测试方法,称之为MyTests
:
public class MyTests
{
@Test
public void testUnit1()
{
...
assertTrue(someBool);
}
@Test
public void testUnit2()
{
...
assertFalse(someBool);
}
@Test
@Category(PerformanceTest.class)
public void bmrkPerfTest1()
{
...
}
@Test
@Category(PerformanceTest.class)
public void bmrkPerfTest2()
{
...
}
}
然后我有一个UnitTestSuite
定义为
@RunWith(Categories.class)
@Categories.ExcludeCategory(PerformanceTest.class)
@SuiteClasses({ MyTests.class })
public class UnitTestSuite {}
和一个PerformanceTestSuite
@RunWith(Categories.class)
@Categories.IncludeCategory(PerformanceTest.class)
@SuiteClasses({ MyTests.class })
public class PerformanceTestSuite {}
这样我就可以将单元测试Ant
与性能测试分开运行(我认为不需要包含 Ant 代码)。
这意味着我总共有四个类(MyTests、PerformanceTest、PerformanceTestSuite 和 UnitTestSuite)。我意识到我可以将所有单元测试放在一个类中,并将基准测试放在另一个类中并完成它,而不会增加类别和额外注释的额外复杂性。我在 Ant 中按类名调用测试,即不在一个包中运行所有测试。
它是否有意义,使用注释按类别组织它的原因是什么,或者如果我只是在两个简单的测试类中重构它会更好吗?