NUnit Консольная командная строка не учитывает регистр символов? - PullRequest
0 голосов
/ 25 июня 2018

Я выполняю тесты NUnit на Jenkins / Mono, и вот как выглядит моя команда:

mono /opt/NUnit-3.8.0/nunit3-console.exe $WORKSPACE/ProjectName/bin/$CONFIG/ProjectName.dll --where="test~=$TEST_NAME" --config=$CONFIG

Идея состоит в том, чтобы иметь возможность выбирать тесты с помощью регулярного выражения.Теперь я хочу выбрать тесты с помощью Regex, но игнорируя регистр.Я пробовал что-то вроде этого:

TEST_NAME = ^.*(?i)something(?-i).*$

А также пробовал:

TEST_NAME = ^.*something.*$/i

Но я получил ошибки "неожиданный токен" ("" и "неожиданный токен" / ").Есть ли способ использовать регистронезависимый модификатор?

1 Ответ

0 голосов
/ 25 июня 2018

Консольный исполнитель NUnit --where=EXPRESSION использует определенный язык выбора тестов (TSL), где

выражение, указывающее, какие тесты нужно запустить.Он может указывать имена тестов, классы, методы, категории или свойства, сравнивая их с фактическими значениями с помощью операторов ==,! =, = ~ И! ~.

Для сопоставления регулярных выражений пользователи NUnit .NET Regex.Метод IsMatch ... как описано здесь .

Попробуйте это так и посмотрите примеры в связанном документе TSL выше.

--where "test =~ /(?i).*mytest/"

ОднакоЕсли вы используете NUnit V2, вам, вероятно, не повезло:

Драйвер для NUnit V2 поддерживает подмножество TSL.Поскольку среда V2 NUnit допускает фильтрацию только по именам и категориям тестов, вы можете использовать только ключевые слова cat и test в сравнениях.Кроме того, операторы регулярных выражений = ~ и! ~ Не поддерживаются .

...