Фильтровать по категории для задач NUnit MSBuild?

Я настраиваю проект MSBuild для запуска некоторого теста NUnit, используя проект MSBuild Community Tasks.

С этими настройками я смогу запускать тесты NUnit:

<Target Name="Test" DependsOnTargets="Build">
    <CreateItem Include="$(ProjectTestDir)\$(ClassLibraryOutputDirectory)\*.Tests.dll">
        <Output TaskParameter="Include" ItemName="TestAssembly" />
    </CreateItem>
    <NUnit Assemblies="@(TestAssembly)" />
</Target>

... но как я могу запускать только определенные тесты - скажем, с определенной категорией? Мы добавили в наши тесты разные категории — некоторые для запуска постоянно, некоторые для запуска только при ночной сборке и т. д.

Я не вижу никаких настроек, позволяющих фильтровать это, или я что-то пропустил? Наверняка у кого-то из вас была такая же проблема и как-то ее решили? Не обязательно использовать этот проект задач сообщества msbuild.


person Per Hornshøj-Schierbeck    schedule 22.06.2009    source источник


Ответы (1)


Глядя в CHM, есть свойство IncludeCategory... похоже на то, что вы ищете? (Файл CHM установлен в C:\Program Files (x86)\MSBuild\MSBuildCommunityTasks)

person Ruben Bartelink    schedule 22.06.2009
comment
Идеальный! Я знал, что что-то упускаю - я искал документацию, но она была :) - person Per Hornshøj-Schierbeck; 22.06.2009
comment
Как я могу применить это для сервера сборки TFS 2012 и тестов NUnit? Должен ли я украшать тесты атрибутом Category("IntegrationTest") (в отличие от атрибута TestCategory("IntegrationTest") для MSTests), а затем Test case Filter из TestCategory!=IntegrationTest должен фильтровать тесты NUnit? Бонус: как это сделать с тестами xUnit? Я не вижу никаких атрибутов категории. - person Csaba Toth; 23.10.2013
comment
@CsabaToth Для xunit есть TraitAttribute, а задача xunit MSBuild позволяет фильтровать его через свойство, насколько мне известно (лично я использую средство запуска консоли, и в синтаксисе командной строки у него есть параметр /-trait). Я не буду догадываться (или загрязнять свой разум!) Поиском эквивалента MSTest для вас. (Кстати, TraitAttribute не sealed, поэтому обычно используются соответствующие атрибуты с известными ключами (и значениями)) - person Ruben Bartelink; 23.10.2013
comment
Спасибо @RubenBartelink, это хороший след для начала. Остается только один вопрос: реализует ли тестовый адаптер xUnit ITestCaseFilterExpression (см. in-vs-2012-rc-using-testcasefilter.aspx" rel="nofollow noreferrer">blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/), поэтому при фильтрации тестов как эта технология .trailmax.info/2013/07/ фильтрация будет работать? - person Csaba Toth; 23.10.2013
comment
@CsabaToth К сожалению, он еще не поддерживается, см. xunit.codeplex.com/workitem/9835 ( и вперед голосовать!) - person Ruben Bartelink; 23.10.2013
comment
@RubenBartelink Спасибо за информацию! Я голосовал! Это не кажется большим ударом, чтобы реализовать это. В NUnit он уже есть (хотя github.com/nunit/nunit-vs-adapter/ Issues/13), и у него есть некоторые особенности внутри. - person Csaba Toth; 23.10.2013
comment
@CsabaToth Это не так, но работа над V2 намеренно планируется - есть много важных элементов, таких как обобщенное управление приборами и параллельное выполнение тестов, которые будут выполняться первыми. Например, версия 2 еще не запускает тесты версии 1 (требуется прокладка), и в этом контексте сложно расставить приоритеты фильтрации. См. xunit.codeplex.com/wikipage?title=backlog xunit.codeplex.com/discussions/440213 А пока, почему бы не перебазировать указанный PR на 1.x или не перекомпилировать 2 .x, если это важно для вас? - person Ruben Bartelink; 24.10.2013
comment
О, вы имеете в виду это: xunit.codeplex.com/SourceControl/ сеть/вилки/terje2000/ . Это действительно похоже на реализацию NUnit! - person Csaba Toth; 24.10.2013
comment
@CsabaToth Это нормально, но получение больших вещей V2 по-прежнему должно иметь приоритет, IMO. Лучше всего провести это обсуждение на xunit.xodeplex.com - оно просто не относится к вопросу или ответу здесь. - person Ruben Bartelink; 24.10.2013