Tôi có một thư viện lớp nunit chứa các trường hợp thử nghiệm. Tôi muốn lập trình danh sách tất cả các bài kiểm tra trong thư viện, chủ yếu là tên bài kiểm tra và id kiểm tra của họ. Dưới đây là những gì tôi có cho đến thời điểm này:Lấy danh sách các bài kiểm tra trong thư viện nunit theo lập trình mà không phải chạy thử nghiệm
var runner = new NUnit.Core.RemoteTestRunner();
runner.Load(new NUnit.Core.TestPackage(Request.PhysicalApplicationPath + "bin\\SystemTest.dll"));
var tests = new List<NUnit.Core.TestResult>();
foreach (NUnit.Core.TestResult result in runner.TestResult.Results)
{
tests.Add(result);
}
Vấn đề là runner.TestResult là null cho đến khi bạn thực sự chạy thử nghiệm. Tôi rõ ràng không muốn chạy các bài kiểm tra vào thời điểm này, tôi chỉ muốn có được một danh sách các bài kiểm tra nào có trong thư viện. Sau đó, tôi sẽ cung cấp cho người dùng khả năng chọn một bài kiểm tra và chạy nó một cách riêng lẻ, chuyển qua id kiểm tra đến cá thể RemoteTestRunner.
Vậy làm cách nào để có danh sách các bài kiểm tra mà không thực sự chạy tất cả các bài kiểm tra?
+1, tuy nhiên có một twist: với TestCaseAttribute bạn có thể parametrize một phương pháp kiểm tra, do đó biến nó thành nhiều bài kiểm tra (logic). Không có gì mà không thể được xử lý bằng sự phản chiếu, nhưng một cái gì đó để ghi nhớ. –
@ Christian.K Điểm tốt, cho OP để ghi nhớ. –
Tôi đã suy nghĩ về việc này ban đầu, vì nó sẽ cho tôi tên thử nghiệm (chức năng), tuy nhiên nó sẽ không cho tôi các id kiểm tra. Miễn là tôi có thể thực hiện một cuộc chạy RemoteTestRunner được lọc bằng tên kiểm tra thay vì id kiểm tra thì điều này sẽ hoạt động tốt, sẽ kiểm tra nó. – Justin