При запуске NUnit и определении категории можно также включить все тесты без рубрики?

У нас есть несколько сотен тестовых классов, причем несколько десятков из них отмечены следующими атрибутами:   [TestFixture]   [Явный]   [Категория ( "IntegrationTests" )] поэтому они будут работать только в нашей ночной автоматизированной сборке. Остальные TestFixtures не имеют указанной категории (и также не обозначены Explicit).

Ниже приведена задача NAnt для выполнения наших тестов:

<nunit2>
 <test>
 ...
 <categories>
 <include name="IntegrationTests">
 </include></categories>
 ...
 </test>
</nunit2>

Это, конечно же, не будет выполнять какие-либо тесты без рубрики.

Я хотел бы сделать что-то вроде этого:

<nunit2>
 <test>
 ...
 <categories>
 <include name="*">
 <include name="IntegrationTests">
 </include></include></categories>
 ...
 </test>
</nunit2>

где все тесты без рубрики будут выполняться вместе с тестами интеграции. Это возможно? Если да, то какой синтаксис?

(Примечание. Я ищу либо решение NAnt, как описано выше, либо решение командной строки NUnit. Я могу, конечно, запустить NUnit дважды с разными параметрами или поместить категории во все мои тестовые среды. Я в порядке, если это необходимо, но было бы круче, если бы можно было напрямую указывать неклассифицированные тесты.)

2 ответа

Я нахожусь в одной лодке и расстраиваюсь до тех пор, пока не узнаю, что атрибут Category можно применить не только к тестовому, но и к целой сборке.

У меня есть две тестовые сборки с тестами, которые я запускаю локально, и еще один с тестами, которые должны выполняться только на сервере сборки. Я добавил этот атрибут в ************.cs в первых двух проектах: [assembly: NUnit.Framework.Category("Always")]. Третий тестовый проект использует атрибуты категории, такие как [Explicit, Category("PublicDatabase")], как вы описываете. Сервер сборки вызывает NUnit с /include=Always,PublicDatabase и имеет желаемый результат: все тесты в первых двух сборках выполняются, а только теги PublicDatabase в третьем запуске сборки.

Когда я запускаю NUnit локально в первых двух проектах, я просто запускаю его на отдельных сборках и вообще не должен указывать категории.


Нет, учитывая ситуацию, вы не можете делать то, что хотите, за один запуск NUnit. Если вы сняли явный атрибут, вы можете сделать это за один проход, исключив все категоризированные тесты, которые вы не хотите.

В принципе, если вы делаете переход к категориям, все ваши тесты должны быть классифицированы.

licensed under cc by-sa 3.0 with attribution.