Как управлять не юнит-тестами в проекте?

9

У меня есть некоторый код в моем проекте, который я лично называю testsне модульными тестами. Они предназначены для запуска, и результат должен оцениваться человеком. Я сделал это, потому что я делаю физический движок, и во время разработки мне нужно было посмотреть, что я делаю. Поэтому я сделал simulationпакет в моем тестовом модуле. Технически это модульные тесты, потому что в симуляциях используется библиотека модульных тестов, но я не хочу запускать их все как мои настоящие модульные тесты.

То, что я хотел бы сделать, это дифференцировать эти специальные тесты от моих модульных тестов, потому что я хочу легко запускать все модульные тесты. Я думаю, что это немного похоже на функциональные тесты. Вы когда-нибудь сталкивались с ситуацией, когда вам приходилось готовить приложение к функциональным тестам? Где эта подготовка к функциональному тестированию (в основном то, чем я занимаюсь) должна быть размещена в проекте и как отличить их от модульных тестов?

Я нахожусь на Java, поэтому я мог изменить все сигнатуры своих методов с @Test public void myNamedTest()на, public static void main(String[] args)но для меня было бы трудоемким и менее практичным использовать мои симуляции.

Я использую junitв gradleпроекте. Любое решение, создающее специальную тестовую папку, gradleприветствуется.

зима
источник
2
Я думаю, что вы говорите о тестовом стенде, где вы можете запускать специальные тесты. Они существуют уже столько, сколько я себя помню (более 30 лет), возможно, даже раньше. Обычно они находятся в отдельном проекте, который может получить доступ к библиотеке или к чему угодно, но вы можете структурировать ее так, как вам нравится.
Робби Ди
3
Термины единица / интеграция / функциональные тесты описывают объем теста: что тестируется. Это полностью независимо от того, как выполняются эти тесты, например, ручные тесты или автоматические тесты. Там могут быть автоматические приемочные испытания и ручные юнит-тесты, и все что угодно между ними. Поэтому, если вы используете JUnit для запуска ручных функциональных тестов, это прекрасно - просто держите их как-то отдельно от ваших автоматических тестов, чтобы они не запускались по умолчанию.
Амон

Ответы:

10

Похоже, более поздние версии Junit поддерживают категории тестов. Это может быть полезно для классификации каждого теста. Затем, когда автоматизация сборки запускается, она может включать или исключать эти тесты на основе категории.

Хотите ли вы смешать эти тесты с юнит-тестами, зависит от предпочтений организации. Можно хотеть создать отдельный проект «испытательной установки», чтобы отделить обычные юнит-тесты от более специализированных.

https://dzone.com/articles/closer-look-junit-categories

Джон Рейнор
источник