2016-06-10 34 views
16

Tôi có một bộ thử nghiệm lớn trong dự án .NET Core. Tôi có thể sử dụng cửa sổ Test Explorer để chọn một vài thử nghiệm để chạy.Làm cách nào để chạy thử nghiệm cụ thể bằng cách sử dụng thử nghiệm dotnet?

Tôi cũng có thể chạy toàn bộ bộ thử nghiệm trên dòng lệnh với dotnet test. Có cách nào để chạy chỉ một (hoặc một vài) thử nghiệm trên dòng lệnh?

Trả lời

20

Với phiên bản 1.0.0 DotNet, bạn phải sử dụng tùy chọn --filter:

Bạn có thể lọc theo DisplayName, FullyQualifiedName và đặc điểm.

Ex:

dotnet test --filter "FullyQualifiedName=YourNamespace.TestClass1.Test1" 

Ngoài ra, các nhà khai thác được phép:! =, = Và ~ (chứa).

Thông tin thêm ở đây: docs

+0

Tôi đã thử cách này và giải pháp này cũng hoạt động cho phiên bản 1.1 và phương pháp [Lý thuyết]. Chuyển đổi '-method' và' -class' không có sẵn trong 1,1 nữa và bạn sẽ nhận được một lỗi: 'MSBUILD: error MSB1001: Unkown switch. Switch: -method' – Teknikaali

+1

Đúng, tôi vừa xác nhận điều này. '-method' không còn hoạt động nữa, nhưng' --filter' làm. Cảm ơn @andrecarlucci! –

+0

Kể từ phiên bản 15.1, biểu thức có thể là từ khóa sẽ được đối sánh với tên đầy đủ. Như tài liệu nói "kiểm tra dotnet --filter xyz' giống như' kiểm tra dotnet - lọc FullyQualifiedName ~ xyz' "Rất thoải mái! – vtellier

11

Câu trả lời này là lỗi thời ...

này được xUnit cụ thể: dotnet test -method <test name>

<test name> là tên phương pháp đầy đủ (namespace + lớp + tên method)

Nếu các xét nghiệm của bạn là một Theory , AFAIK, không có cách nào để xác định lý thuyết nào để chạy. Nó sẽ chạy tất cả chúng.

+0

Cảm ơn! Tài liệu này có ở bất kỳ đâu không? –

+0

Tôi nghĩ rằng nó nên được một nơi nào đó trong tài liệu xunit https://xunit.github.io/#documentation –

+0

Điều này có thể là một cái gì đó đã thay đổi trong vài tuần qua; Bây giờ bạn có thể kiểm tra một lý thuyết theo cùng một cách. – kiml42

4

Kể từ khi câu hỏi này được gắn thẻ với xUnit, lệnh cho DotNet xUnit CLI lệnh này như sau:

dotnet xunit -method FullyQualifiedName 
Các vấn đề liên quan