Краткий ответ: Нет. NUnit, фактически, разработан, чтобы сделать это невозможным. Тесты в основном не должны знать, откуда пришли их аргументы или кто их предоставил. Это важно в некоторых видах расширенных сценариев генерации тестов, а также для [Theory]
тестов.
Общий подход к этой проблеме состоит в том, чтобы предпринять шаги, обеспечивающие уникальное имя ваших тестов. Любые дубликаты, будь то в одном и том же списке или между двумя списками, делают невозможным точное определение источника проблемы.
Ключевой вопрос заключается в том, являются ли явно повторяющиеся тесты истинными дубликатами. Вы не узнаете об этом, если только тип каждого возвращаемого аргумента не переопределяет ToString()
таким образом, который позволяет определить точный случай. Например, если бы Country
был классом без переопределения ToString
, каждый экземпляр теста был бы назван как-то вроде SomeTest(<Country>)
. OTOH, это не будет проблемой, если Country
является enum
или если его ToString()
переопределено уникальным способом.
В вашем случае, есть относительно простой способ дать ваши тестыуникальное полное имя , даже если отображаемые имена совпадают.
Поместите все тесты в абстрактный базовый класс.
Извлеките два разных прибора из этой базы.
Используйте CountryListA
в одном из этих приборов и CountryListB
в другом.
Тем не менее, мне кажется, что лучший подход - сохранить текущую структуру и сделать тестовые наборы более узнаваемыми.