​https://github.com/nunit/docs/wiki/Console-Command-Line​

The console interface runner is invoked by a command in the form

    NUNIT3-CONSOLE [inputfiles] [options]


where inputfiles is one or more assemblies or test projects of a type that NUnit can process and options is zero or more options.

Input files and options may be mixed in any order.

 

--where=EXPRESSION

An expression indicating which tests to run.

It may specify test names, classes, methods, categories or properties comparing them to actual values with the operators ==, !=, =~ and !~.

See ​​Test Selection Language​​ for a full description of the syntax.

 

​https://github.com/nunit/docs/wiki/Test-Selection-Language​

​cat​​ - A category assigned to the test, e.g. SmokeTests

 

Filtering Based on Properties

Although the syntax will accept any property name - including names that don't actually exist - filtering will only work on existing, string-valued properties. The following properties are created by NUnit and have string values:

  • Author
  • Category
  • Description
  • SetCulture
  • SetUICulture
  • TestOf
  • IgnoreUntilDate

In general, these properties were not created with filtering in mind, but you can use them if it suits your needs. Using the Category property currently accomplishes the same thing as the cat keyword. You should be aware that the use of these properties by NUnit is considered an implementation detail and they may change in the future.

 

We envision that most filtering by property will be based on user-defined properties, created for this purpose by inheriting from ​​Property Attribute​​. When defining a property, you should keep the limitation to string values in mind. For example, a PriorityAttribute taking values of "High", "Medium" and "Low" could be used for filtering, while one that took the integers 1, 2 and 3 could not.

 

​https://github.com/nunit/docs/wiki/Property-Attribute​

Usage Note

The PropertyAttribute is not currently used for any purpose by NUnit itself, other than to display them in the XML output file and in the Test Properties dialog of the gui. You may also use use properties with the ​​--where​​ option on the command-line in order to select tests to run. See ​​Test Selection Language​​. Note that his filtering will only work for properties where the values have type string.



namespace NUnit.Tests
{
using System;
using NUnit.Framework;

[TestFixture, Property("Location", 723)]
public class MathTests
{
[Test, Property("Severity", "Critical")]
public void AdditionTest()
{ /* ... */ }
}
}


 

后台所对应的函数



//
// Summary:
// Construct a PropertyAttribute with a name and string value
//
// Parameters:
// propertyName:
// The name of the property
//
// propertyValue:
// The property value
public PropertyAttribute(string propertyName, string propertyValue);
//
// Summary:
// Construct a PropertyAttribute with a name and int value
//
// Parameters:
// propertyName:
// The name of the property
//
// propertyValue:
// The property value
public PropertyAttribute(string propertyName, int propertyValue);
//
// Summary:
// Construct a PropertyAttribute with a name and double value
//
// Parameters:
// propertyName:
// The name of the property
//
// propertyValue:
// The property value
public PropertyAttribute(string propertyName, double propertyValue);


 

另外还可以继承PropertyAttribute,实现自定义的property attribute