Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dengan perintah dotnet test di .NET Core, Anda dapat menggunakan ekspresi filter untuk menjalankan pengujian yang dipilih. Artikel ini menunjukkan cara memfilter pengujian. Contoh menggunakan dotnet test. Jika Anda menggunakan vstest.console.exe, ganti --filter dengan --testcasefilter:.
Sintaks
dotnet test --filter <Expression>
Ekspresi dalam format
<Property><Operator><Value>[|&<Expression>].Ekspresi dapat digabungkan dengan operator boolean:
|untuk boolean for,&untuk boolean and.Ekspresi dapat terlampir dalam tanda kurung. Misalnya:
(Name~MyClass) | (Name~MyClass2).Ekspresi tanpa operator apa pun ditafsirkan sebagai berisi pada properti
FullyQualifiedName. Misalnya,dotnet test --filter xyzsama dengandotnet test --filter FullyQualifiedName~xyz.Properti adalah atribut dari
Test Case. Misalnya, properti berikut didukung oleh kerangka kerja pengujian unit populer.Kerangka kerja pengujian Properti yang didukung MSTest FullyQualifiedNameNameClassNamePriorityTestCategoryxUnit FullyQualifiedNameDisplayNameTraitsNunit FullyQualifiedNameNamePriorityTestCategoryOperator
-
=sama persis -
!=tidak sama persis -
~berisi -
!~tidak berisi
-
Nilai adalah string. Semua pencarian tidak peka huruf besar/kecil.
Meng-escape karakter
Untuk menggunakan tanda seru (!) dalam ekspresi filter, Anda harus meng-escapenya di beberapa shell Linux atau macOS dengan memberikan garis miring terbalik di depannya (\!). Misalnya, filter berikut melewatkan semua pengujian dalam namespace layanan yang berisi IntegrationTests:
dotnet test --filter FullyQualifiedName\!~IntegrationTests
Untuk nilai FullyQualifiedName yang menyertakan koma untuk parameter jenis generik, escape koma dengan %2C. Contohnya:
dotnet test --filter "FullyQualifiedName=MyNamespace.MyTestsClass<ParameterType1%2CParameterType2>.MyTestMethod"
Untuk Name atau DisplayName, gunakan pengodean URL untuk karakter khusus. Misalnya, untuk menjalankan pengujian dengan nama MyTestMethod dan nilai string "text", gunakan filter berikut:
dotnet test --filter "Name=MyTestMethod \(%22text%22\)"
Contoh MSTest
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()
{
}
}
}
| Ekspresi | Hasil |
|---|---|
dotnet test --filter Method |
Menjalankan pengujian yang FullyQualifiedName-nya berisi Method. |
dotnet test --filter Name~TestMethod1 |
Menjalankan pengujian yang namanya berisi TestMethod1. |
dotnet test --filter ClassName=MSTestNamespace.UnitTest1 |
Menjalankan pengujian yang ada dalam kelas MSTestNamespace.UnitTest1.Catatan: Nilai ClassName harus memiliki namespace, sehingga ClassName=UnitTest1 tidak akan berfungsi. |
dotnet test --filter FullyQualifiedName!=MSTestNamespace.UnitTest1.TestMethod1 |
Menjalankan semua pengujian kecuali MSTestNamespace.UnitTest1.TestMethod1. |
dotnet test --filter TestCategory=CategoryA |
Menjalankan pengujian yang dianotasikan dengan [TestCategory("CategoryA")]. |
dotnet test --filter Priority=2 |
Menjalankan pengujian yang dianotasikan dengan [Priority(2)]. |
Contoh menggunakan operator | dan & kondisional:
Untuk menjalankan pengujian yang ada
UnitTest1di atauTestCategoryAttributeadalah ."CategoryA"dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"Untuk menjalankan pengujian yang ada
UnitTest1di mereka FullyQualifiedNamedan memiliki .TestCategoryAttribute"CategoryA"dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"Untuk menjalankan pengujian yang berisi FullyQualifiedName
UnitTest1dan memiliki TestCategoryAttribute atau"CategoryA"memiliki PriorityAttribute dengan prioritas .1dotnet test --filter "(FullyQualifiedName~UnitTest1&TestCategory=CategoryA)|Priority=1"
Contoh xUnit
using Xunit;
namespace XUnitNamespace
{
public class TestClass1
{
[Fact, Trait("Priority", "1"), Trait("Category", "CategoryA")]
public void Test1()
{
}
[Fact, Trait("Priority", "2")]
public void Test2()
{
}
}
}
| Ekspresi | Hasil |
|---|---|
dotnet test --filter DisplayName=XUnitNamespace.TestClass1.Test1 |
Hanya menjalankan satu pengujian, XUnitNamespace.TestClass1.Test1. |
dotnet test --filter FullyQualifiedName!=XUnitNamespace.TestClass1.Test1 |
Menjalankan semua pengujian kecuali XUnitNamespace.TestClass1.Test1. |
dotnet test --filter DisplayName~TestClass1 |
Menjalankan pengujian yang nama tampilannya berisi TestClass1. |
Dalam contoh kode, sifat yang ditentukan dengan kunci "Category" dan "Priority" dapat digunakan untuk pemfilteran.
| Ekspresi | Hasil |
|---|---|
dotnet test --filter XUnit |
Menjalankan pengujian yang FullyQualifiedName-nya berisi XUnit. |
dotnet test --filter Category=CategoryA |
Menjalankan pengujian yang memiliki [Trait("Category", "CategoryA")]. |
Contoh menggunakan operator | dan & kondisional:
Untuk menjalankan pengujian yang memiliki
TestClass1FullyQualifiedNameatau memilikiTraitdengan kunci"Category"dan nilai ."CategoryA"dotnet test --filter "FullyQualifiedName~TestClass1|Category=CategoryA"Untuk menjalankan pengujian yang ada
TestClass1di dalamnya FullyQualifiedNamedan memilikiTraitdengan kunci"Category"dan nilai"CategoryA".dotnet test --filter "FullyQualifiedName~TestClass1&Category=CategoryA"Untuk menjalankan pengujian yang berisi FullyQualifiedName
TestClass1dan memilikiTraitdengan kunci"Category"dan nilai"CategoryA"atau memilikiTraitdengan kunci"Priority"dan nilai .1dotnet test --filter "(FullyQualifiedName~TestClass1&Category=CategoryA)|Priority=1"
Contoh NUnit
using NUnit.Framework;
namespace NUnitNamespace
{
public class UnitTest1
{
[Test, Property("Priority", 1), Category("CategoryA")]
public void TestMethod1()
{
}
[Test, Property("Priority", 2)]
public void TestMethod2()
{
}
}
}
| Ekspresi | Hasil |
|---|---|
dotnet test --filter Method |
Menjalankan pengujian yang FullyQualifiedName-nya berisi Method. |
dotnet test --filter Name~TestMethod1 |
Menjalankan pengujian yang namanya berisi TestMethod1. |
dotnet test --filter FullyQualifiedName~NUnitNamespace.UnitTest1 |
Menjalankan pengujian yang ada dalam kelas NUnitNamespace.UnitTest1. |
dotnet test --filter FullyQualifiedName!=NUnitNamespace.UnitTest1.TestMethod1 |
Menjalankan semua pengujian kecuali NUnitNamespace.UnitTest1.TestMethod1. |
dotnet test --filter TestCategory=CategoryA |
Menjalankan pengujian yang dianotasikan dengan [Category("CategoryA")]. |
dotnet test --filter Priority=2 |
Menjalankan pengujian yang dianotasikan dengan [Priority(2)]. |
Contoh menggunakan operator | dan & kondisional:
Untuk menjalankan tes yang ada UnitTest1 di mereka FullyQualifiedNameatau memiliki Category dari "CategoryA".
dotnet test --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Untuk menjalankan pengujian yang ada UnitTest1 di mereka FullyQualifiedNamedan memiliki .Category"CategoryA"
dotnet test --filter "FullyQualifiedName~UnitTest1&TestCategory=CategoryA"
Untuk menjalankan pengujian yang berisi FullyQualifiedNameUnitTest1dan memiliki Category atau "CategoryA" memiliki Property dengan ."Priority"1
dotnet test --filter "(FullyQualifiedName~UnitTest1&TestCategory=CategoryA)|Priority=1"
Untuk informasi selengkapnya, lihat Filter TestCase.