У меня есть две логические категории тестов: простые функциональные модульные тесты (пропуск/сбой) и тесты производительности, которые только для показателей/диагностики.Использование категорий 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
отдельно от тестов производительности (я не думаю, что в том числе код Ant необходим).
Это означает, что у меня есть в общей сложности четыре класса (MyTests, PerformanceTest, PerformanceTestSuite и UnitTestSuite). Я понимаю, что я мог бы просто поместить все модульные тесты в один класс и провести тесты в другом классе и сделать это без дополнительной сложности с категориями и дополнительными аннотациями. Я вызываю тесты по имени класса в Ant, т. Е. Не запускает все тесты в пакете.
Имеет ли смысл и в чем причины, чтобы держать его организованным по категориям с аннотацией, или было бы лучше, если бы я просто переработал его в двух простых классах тестов?