Мне нужен способ указать несколько значений пользовательских черт xunit из командной строки для запуска тестов.
Для моей среды выполнения я не хочу, чтобы VS устанавливался, и, следовательно, установлен VS TestAgent.Я пробовал donet, dotnet-xunit и оба требуют csproj в качестве входных данных.
У меня реализована специальная черта XUnit (пример: как указано здесь https://kenbonny.net/2016/12/20/creating-a-custom-xunit-trait/ и несколько других мест).Я определил пользовательскую черту Feature, а затем из этой черты у меня есть пара расширенных черт, определяющих черту FeatureX, черту FeatureY.При этом TestMethod должен иметь возможность атрибутировать себя как
[Fact]
[FeatureX]
public void CanTest_FeatureX() {}
Для запуска теста из командной строки я использую следующую команду для запуска теста -
vstest.console myTest.dll -testcasefilter: Feature = FeatureX
, и тест успешно выполнен.
Теперь, если у меня есть тест с несколькими признаками, пример -
[Fact]
[FeatureX]
[FeatureY]
public void CanTest_FeatureX_and_FeatureY() {}
Попытка запустить тесты из командной строки, например -
vstest.console myTest.dll -testcasefilter: Feature = FeatureX, FeatureY vstest.console myTest.dll --testcasefilter: Feature = FeatureX; FeatureY vstest.console myTest.dll --testcasefilter: Feature = FeatureX --testcasefilter: Feature = FeatureY
Всевышеприведенные команды терпят неудачу.Для первого и второго аргументов я получаю следующую ошибку No test matches the given testcase filter
.В третьем случае я вижу ошибку The parameter "/TestCaseFilter" should be provided only once.
.
Нашел ответ в этом блоге - https://blogs.msdn.microsoft.com/vikramagrawal/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter/.