#c# #unit-testing #jenkins #nunit #nunit-console
#c# #модульное тестирование #дженкинс #nunit #nunit-консоль
Вопрос:
Я хочу исключить только 1 параметр тестового примера из приведенного ниже во время выполнения командной строки
nunit3-console.exe Excel.Test.dll --where="cat!=IgnoreForNow"
но это исключает все параметры (A, B, C, D)
[TestCase("A"), Category("IgnoreForNow")]
[TestCase("B")]
[TestCase("C")]
[TestCase("D")]
public void TestReports(string fileName)
{
Test("foo", fileName);
}
Я не хочу использовать атрибут ignore, поскольку я хочу пропустить выполнение этого тестового примера в системе сборки, но хочу выполнить их локально.
Есть ли какой-либо способ в NUnit при выполнении из командной строки
Ответ №1:
Ваш подход и командная строка верны, но способ, которым вы в настоящее время используете атрибут категории, неверен.
То, что у вас есть в настоящее время, эквивалентно приведенному ниже в терминах C #:
[TestCase("A")]
[TestCase("B")]
[TestCase("C")]
[TestCase("D")]
[Category("IgnoreForNow")]
public void TestReports(string fileName)
{
Test("foo", fileName);
}
Делая это, вы применяете категорию ко всему TestReports
набору тестов — вот почему все отдельные случаи исключаются.
Вместо этого вам нужно использовать Category
свойство TestCaseAttribute
, как показано ниже:
[TestCase("A", Category="IgnoreForNow")]
[TestCase("B")]
[TestCase("C")]
[TestCase("D")]
public void TestReports(string fileName)
{
Test("foo", fileName);
}