Как использовать исключение атрибута категории при выполнении командной строки Nunit

#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);
     }