Сейчас разбираюсь с запуском тестов через maven. Перед тем как задать вопрос, хотел бы уточнить следующее, поправьте если я не прав:
Если есть например класс который проверяет функциональность Functional1.class
@Test
public void add(){}
@Test
public void delete{}
@Test
public void edit
}```
То запуск одиночного класса со всеми его тестами, осуществляется командой ```mvn -Dtest=Functional1 test```
Если я хочу запустить все классы с тестами в пакете, я использую profile (я понимаю, что у них больше настроек, но пока остановлюсь в данной теме на конкретном примере)
```<profiles>
<profile>
<id>BasicTest</id>
<properties>
<testcase.groups>com.sl.test.Functional1</testcase.groups>
</properties>
</profile>
</profiles>```
Если я хочу выполнить тестовую ситуацию, я использую Suite.
```@RunWith(Suite.class)
@SuiteClasses({Functional1.class})
public class FirstSuite {
}```
Но при выполнении будут запускаться все тесты в классах. Поэтому нам на помощь приходят @Category. С помощью них мы можем более гибко настраивать нашу тестовую ситуацию. Запуск категорий выполнял по [статье][1]:
//Маркер для категории
public interface SlowTest {}
//Запуск категории или нескольких категорий тестов.
@RunWith(Categories.class)
@IncludeCategory(SlowTest.class)
@SuiteClasses({TariffPlan.class})
public class FirstSuite {}
@Category(SlowTest.class)
public class TariffPlan extends HomePage{
@Test
public void addMovie(){}
}
@Test
public void deleteMovie(){}
}
//pom.xml
…
BasicTest
<testcase.groups>com.sl.test.SlowTest</testcase.groups>
maven-compiler-plugin
3.1
Для запуска категории нужно изменить путь в профиле, добавив месторасполажение интерфейса категории```<testcase.groups>com.sl.test.SlowTest</testcase.groups> ```
запуск осуществляется также через профиль ```mvn -P BasicTest test```
Вообщем я не совсем понимаю, правильно ли я указал как запускаются тесты? Зачем мы в surefire-junit47 указываем категории которые хотим запустить, не легче использовать команду -Dtest FirstSuite в классе которой уже прописано какие категории мы используем?
На каждую категорию идет по интерфейсу, а если еще и тестовые ситуации добавить, 100 классов получится? Когда нужно использовать профиль, если писать на каждый класс профиль 1000 классов с тестами = 1000 профилей? Вообщем я немного запутался =)
[1]: http://internetka.in.ua/group-junit-category/