我有两种逻辑测试类别:纯粹的功能单元测试(通过/失败)以及仅用于度量/诊断的基准测试。使用JUnit类别与简单地在单独的类中组织测试
目前,我有一个类中的所有测试方法,称之为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代码是必要的)。
这意味着我总共有四个类(MyTests,PerformanceTest,PerformanceTestSuite和UnitTestSuite)。我意识到我可以将所有的单元测试放在一个类中,并在另一个类中进行基准测试,并完成它,而不需要类别和额外注释的额外复杂性。我在Ant中通过类名称调用测试,即不要在包中运行所有测试。
它是否有意义,以及如何使用注解保持它按类别组织的原因是什么?或者如果我只是在两个简单的测试类中重构它,它会更好吗?