Я думаю, вы должны спросить себя, что должно делать (предварительное) тестирование.
Сначала вы пишете (набор) тестов без имплементации.
Может быть, и сценарии дождливого дня.
Все эти тесты должны быть неудачными, чтобы быть правильными:
Итак, вы хотите достичь двух вещей:
1) Убедитесь, что ваша реализация верна;
2) Убедитесь, что ваши юнит-тесты верны.
Теперь, если вы делаете предварительный TDD, вы хотите выполнить все свои тесты, в том числе и части NYI.
Результат вашего полного теста проходит, если:
1) Все реализованные вещи успешны
2) Все вещи NYI терпят неудачу
В конце концов, это было бы пропуском модульных тестов, если бы ваши модульные тесты были успешными, пока нет реализации, не так ли?
Вы хотите получить что-то от почты вашего теста непрерывной интеграции, которая проверяет весь реализованный и не реализованный код и отправляется в случае сбоя какого-либо реализованного кода или успешного выполнения любого не реализованного кода. Оба являются нежелательными результатами.
Просто напишите [игнорировать] тесты, которые не будут выполнять работу.
Кроме того, подтверждение, которое останавливает первый сбой утверждения, не запускает другие строки теста в тесте.
Теперь, как этого добиться?
Я думаю, что это требует более продвинутой организации вашего тестирования.
И для достижения этих целей требуется какой-то другой механизм, а затем утверждающий.
Я думаю, что вам нужно разделить свои тесты и создать несколько тестов, которые будут полностью запущены, но не пройдут, и наоборот.
Идея состоит в том, чтобы разбить ваши тесты на несколько сборок, использовать группировку тестов (упорядоченные тесты в mstest могут выполнять эту работу).
Тем не менее, сборка CI, которая отправляет по почте, если не все тесты в отделении NYI, неудачи, не проста и прямолинейна.