Я разрабатываю сетевую клиентскую библиотеку на C#, которая может работать в режиме SSL или в текстовом режиме. Оба должны быть поддержаны. Я обнаружил несколько причуд при работе в том или ином режиме, которые могут неожиданно появляться при тестировании чего-то другого. Я обнаружил, что для диагностики проблем очень полезно запускать тесты в текстовом или SSL-режиме.
Я хотел бы запустить библиотеку в текстовом и SSL-режимах на своем CI-сервере. Я могу сделать это довольно легко, запустив dotnet test
с переменной среды, чтобы описать, какой режим запустить, но это затем даст дублированные результаты теста для моего программного обеспечения CI, которое в настоящее время является Appveyor, но скоро будет TeamCity. Если модульный тест не пройден в SSL, но не в текстовом режиме, их будет непросто отличить.
В настоящий момент я думаю, что лучшим способом сделать это было бы добавление префикса имени каждого тестового примера, сообщаемого программе CI, к типу прогона, но я не смог найти способ сделай это. Однако я открыт для других предложений.
Другие идеи, которые у меня были:
- Переписать все тесты для использования
[Theory]
- это похоже на большую работу, и я не сможет установить с помощью конструкторов. У меня также есть ряд [Theory]
тестов, которые мне нужно как-то выяснить. - Настройка различной конфигурации CI для каждого отдельного запуска теста - теперь это было бы хорошо, но если бы мне пришлось запускать одни и те же тесты для разных версий одного и того же программного обеспечения, я мог бы получить 10 или более конфигураций.
В этом случае ни тот, ни другой не кажутся правильным способом решения проблемы, и я надеюсь, что есть более элегантное решение, так как я уверен, что я не единственный, кто имеет эту проблему.