Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
dotnet test A .NET Core parancsával szűrőkifejezéssel futtathatja a kiválasztott teszteket. Ez a cikk bemutatja, hogyan szűrheti a teszteket. A példák a következőt használják dotnet test: Ha használjavstest.console.exe, cserélje le a következőre--filter--testcasefilter:: .
Syntax
dotnet test --filter <Expression>
A kifejezés formátuma
<Property><Operator><Value>[|&<Expression>].A kifejezések logikai operátorokkal is összekapcsolhatók:
|logikai vagy&logikai és.A kifejezések zárójelben is csatolhatók. Például:
(Name~MyClass) | (Name~MyClass2)Az operátor nélküli
FullyQualifiedNamePéldául ugyanaz,dotnet test --filter xyzmintdotnet test --filter FullyQualifiedName~xyza .A tulajdonság a
Test Case. A népszerű egységtesztelési keretrendszerek például az alábbi tulajdonságokat támogatják.Tesztelési keretrendszer Támogatott tulajdonságok MSTest FullyQualifiedNameNameClassNamePriorityTestCategoryxUnit FullyQualifiedNameDisplayNameTraitsNunit FullyQualifiedNameNamePriorityTestCategoryOperátorok
-
=pontos egyezés -
!=nem pontos egyezés -
~Tartalmaz -
!~nem tartalmaz
-
Az érték egy sztring. Minden keresés érzéketlen a kis- és nagybetűk között.
A karakter menekülése
Ha felkiáltójelet (!) szeretne használni egy szűrőkifejezésben, néhány Linux- vagy macOS-rendszerhéjban meg kell szabadulnia, ha egy fordított perjelet helyez elé (\!). A következő szűrő például kihagyja az összes tesztet egy névtérben, amely tartalmazza a következőket IntegrationTests:
dotnet test --filter FullyQualifiedName\!~IntegrationTests
Az általános típusparaméterekhez vesszőt tartalmazó értékek esetén FullyQualifiedName a vesszőt a következővel %2Ckell feloldani: Példa:
dotnet test --filter "FullyQualifiedName=MyNamespace.MyTestsClass<ParameterType1%2CParameterType2>.MyTestMethod"
Name vagy DisplayNameesetén használja a speciális karakterek URL-kódolását. Ha például egy MyTestMethod nevű és egy "text"sztringértékkel rendelkező tesztet szeretne futtatni, használja a következő szűrőt:
dotnet test --filter "Name=MyTestMethod \(%22text%22\)"
MSTest-példák
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace MSTestNamespace
{
[TestClass]
public class UnitTest1
{
[TestMethod, Priority(1), TestCategory("CategoryA")]
public void TestMethod1()
{
}
[TestMethod, Priority(2)]
public void TestMethod2()
{
}
}
}
| Expression | Eredmény |
|---|---|
dotnet test --filter Method |
Futtatja azokat a teszteket, amelyek FullyQualifiedName tartalmazzák azokat Method. |
dotnet test --filter Name~TestMethod1 |
Futtatja azokat a teszteket, amelyeknek a neve tartalmazza.TestMethod1 |
dotnet test --filter ClassName=MSTestNamespace.UnitTest1 |
Osztályban lévő MSTestNamespace.UnitTest1teszteket futtat.Megjegyzés: Az ClassName értéknek névtérrel kell rendelkeznie, ezért ClassName=UnitTest1 nem fog működni. |
dotnet test --filter FullyQualifiedName!=MSTestNamespace.UnitTest1.TestMethod1 |
Az összes tesztet futtatja a kivételével MSTestNamespace.UnitTest1.TestMethod1. |
dotnet test --filter TestCategory=CategoryA |
A következővel jegyzetelt [TestCategory("CategoryA")]teszteket futtatja: . |
dotnet test --filter Priority=2 |
A következővel jegyzetelt [Priority(2)]teszteket futtatja: . |
Példák a feltételes operátorok | és &a:
Olyan tesztek futtatása, amelyek a sajátjukban
UnitTest1FullyQualifiedName azok között vannak TestCategoryAttribute"CategoryA".dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"Olyan tesztek futtatása, amelyek a sajátjukban
UnitTest1vannakFullyQualifiedName, és amelyekben van egyTestCategoryAttribute."CategoryA"dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"Olyan tesztek futtatásához, amelyek FullyQualifiedName tartalmazzák
UnitTest1és rendelkeznek"CategoryA"egy vagy több PriorityAttribute prioritású1teszttel.dotnet test --filter "(FullyQualifiedName~UnitTest1&TestCategory=CategoryA)|Priority=1"
xUnit-példák
using Xunit;
namespace XUnitNamespace
{
public class TestClass1
{
[Fact, Trait("Priority", "1"), Trait("Category", "CategoryA")]
public void Test1()
{
}
[Fact, Trait("Priority", "2")]
public void Test2()
{
}
}
}
| Expression | Eredmény |
|---|---|
dotnet test --filter DisplayName=XUnitNamespace.TestClass1.Test1 |
Csak egy tesztet futtat. XUnitNamespace.TestClass1.Test1 |
dotnet test --filter FullyQualifiedName!=XUnitNamespace.TestClass1.Test1 |
Az összes tesztet futtatja a kivételével XUnitNamespace.TestClass1.Test1. |
dotnet test --filter DisplayName~TestClass1 |
Futtatja azokat a teszteket, amelyek megjelenítendő nevét tartalmazza TestClass1. |
A kód példájában a kulcsokat tartalmazó "Category""Priority" , definiált tulajdonságok használhatók szűrésre.
| Expression | Eredmény |
|---|---|
dotnet test --filter XUnit |
Futtatja azokat a teszteket, amelyek FullyQualifiedName tartalmazzák azokat XUnit. |
dotnet test --filter Category=CategoryA |
Futtatja azokat a teszteket, amelyek rendelkeznek [Trait("Category", "CategoryA")]. |
Példák a feltételes operátorok | és &a:
Olyan tesztek futtatásához, amelyekben
TestClass1FullyQualifiedNameTraitkulcs"Category"és az érték."CategoryA"dotnet test --filter "FullyQualifiedName~TestClass1|Category=CategoryA"Olyan tesztek futtatásához, amelyek
TestClass1rendelkeznek a hozzájuk FullyQualifiedName tartozó ésTraita kulcsukkal"Category"és értékükkel"CategoryA".dotnet test --filter "FullyQualifiedName~TestClass1&Category=CategoryA"Olyan tesztek futtatása, amelyek FullyQualifiedName tartalmazzák
TestClass1és rendelkeznekTraitegy kulccsal"Category"és értékkel"CategoryA", vagy rendelkezikTraitegy kulccsal"Priority"és értékkel1.dotnet test --filter "(FullyQualifiedName~TestClass1&Category=CategoryA)|Priority=1"
NUnit-példák
using NUnit.Framework;
namespace NUnitNamespace
{
public class UnitTest1
{
[Test, Property("Priority", 1), Category("CategoryA")]
public void TestMethod1()
{
}
[Test, Property("Priority", 2)]
public void TestMethod2()
{
}
}
}
| Expression | Eredmény |
|---|---|
dotnet test --filter Method |
Futtatja azokat a teszteket, amelyek FullyQualifiedName tartalmazzák azokat Method. |
dotnet test --filter Name~TestMethod1 |
Futtatja azokat a teszteket, amelyeknek a neve tartalmazza.TestMethod1 |
dotnet test --filter FullyQualifiedName~NUnitNamespace.UnitTest1 |
Osztályban lévő NUnitNamespace.UnitTest1teszteket futtat. |
dotnet test --filter FullyQualifiedName!=NUnitNamespace.UnitTest1.TestMethod1 |
Az összes tesztet futtatja a kivételével NUnitNamespace.UnitTest1.TestMethod1. |
dotnet test --filter TestCategory=CategoryA |
A következővel jegyzetelt [Category("CategoryA")]teszteket futtatja: . |
dotnet test --filter Priority=2 |
A következővel jegyzetelt [Priority(2)]teszteket futtatja: . |
Példák a feltételes operátorok | és &a:
Olyan tesztek futtatása, amelyek UnitTest1 a saját vagyFullyQualifiedNamea.Category"CategoryA"
dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Olyan tesztek futtatása, amelyek a sajátjukban UnitTest1 vannakFullyQualifiedName, és amelyekben van egyCategory."CategoryA"
dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"
Olyan tesztek futtatásához, amelyek FullyQualifiedName tartalmaznak UnitTest1, ésCategory amelyekből "CategoryA" van egy, vagy rendelkezik Property a következővel "Priority"1: .
dotnet test --filter "(FullyQualifiedName~UnitTest1&TestCategory=CategoryA)|Priority=1"
További információ: TestCase szűrő.