Как запустить один и тот же набор тестов xunit. net в нескольких конфигурациях? - PullRequest
1 голос
/ 11 марта 2020

Я разрабатываю сетевую клиентскую библиотеку на C#, которая может работать в режиме SSL или в текстовом режиме. Оба должны быть поддержаны. Я обнаружил несколько причуд при работе в том или ином режиме, которые могут неожиданно появляться при тестировании чего-то другого. Я обнаружил, что для диагностики проблем очень полезно запускать тесты в текстовом или SSL-режиме.

Я хотел бы запустить библиотеку в текстовом и SSL-режимах на своем CI-сервере. Я могу сделать это довольно легко, запустив dotnet test с переменной среды, чтобы описать, какой режим запустить, но это затем даст дублированные результаты теста для моего программного обеспечения CI, которое в настоящее время является Appveyor, но скоро будет TeamCity. Если модульный тест не пройден в SSL, но не в текстовом режиме, их будет непросто отличить.

В настоящий момент я думаю, что лучшим способом сделать это было бы добавление префикса имени каждого тестового примера, сообщаемого программе CI, к типу прогона, но я не смог найти способ сделай это. Однако я открыт для других предложений.

Другие идеи, которые у меня были:

  • Переписать все тесты для использования [Theory] - это похоже на большую работу, и я не сможет установить с помощью конструкторов. У меня также есть ряд [Theory] тестов, которые мне нужно как-то выяснить.
  • Настройка различной конфигурации CI для каждого отдельного запуска теста - теперь это было бы хорошо, но если бы мне пришлось запускать одни и те же тесты для разных версий одного и того же программного обеспечения, я мог бы получить 10 или более конфигураций.

В этом случае ни тот, ни другой не кажутся правильным способом решения проблемы, и я надеюсь, что есть более элегантное решение, так как я уверен, что я не единственный, кто имеет эту проблему.

1 Ответ

0 голосов
/ 11 марта 2020

С помощью xUnit вы можете использовать черты или категории для достижения этого

http://www.brendanconnolly.net/organizing-tests-with-xunit-traits/

Я знаю, что это определенно можно сделать в TeamCity

...