2013-01-24 29 views
9

Tôi có một lớp thử nghiệm cơ bản có chứa một số trường hợp thử nghiệm và một số xét nghiệm bình thường:NUnit trường hợp thử nghiệm không chạy từ kế thừa lớp

[TestFixture] 
public abstract class TestBase 
{ 
    [TestCase(1)] 
    [TestCase(2)] 
    [TestCase(3)] 
    public void TestA(int value) 
    { 
    // Perform test 
    } 

    [Test] 
    public void TestB() 
    { 
    // Perform test 
    } 
} 

Những thử nghiệm đang chạy từ lớp trẻ mà thiết lập môi trường theo nhiều cách khác nhau. Các lớp con chỉ chứa các phương thức thiết lập, không có kiểm tra.

[TestFixture] 
public class LocalDatabaseTest : TestBase 
{ 
    [SetUp] 
    public void SetUp() 
    { 
    // Set up environment to use local db 
    } 
} 

Tôi đang sử dụng ReSharper 6.1.1000.82 để chạy tất cả các xét nghiệm trong LocalDatabaseTest, nhưng chỉ có các bài kiểm tra bình thường đang chạy. Các thử nghiệm sử dụng TestCase không nhận được bất kỳ kết quả nào. Nếu tôi chọn Run All trên TestA trong lớp TestBase, tất cả các trường hợp kiểm thử đều được chạy (bao gồm cả các lớp con khác). Tôi đang sử dụng NUnit 2.6.2.12296. Bất kỳ ý tưởng về những gì tôi đã làm sai?

Trả lời

7

Bạn đã không làm gì sai.

Nếu bạn mở dll thử nghiệm của bạn thông qua Á hậu thử nghiệm NUnit bạn sẽ thấy tất cả các thử nghiệm đang chạy thành công.
(Tôi vừa xác minh mã của bạn bằng NUnit 2.6.2).

Về lý do bỏ qua các thử nghiệm được tham số hóa trên Resharper: Có vẻ như có vấn đề với nhân viên kiểm tra Resharper gây ra hành vi như vậy.
Vì vậy, đề xuất của tôi là sử dụng NUnit để chạy các thử nghiệm được tham số hóa.

Btw, Resharper 7 hỗ trợ tốt hơn các thử nghiệm tham số NUnit. Và có lẽ vấn đề này sẽ không xuất hiện trong phiên bản Resharper mới nhất.

+0

Ok, có vẻ như thời gian để nâng cấp lên ReSharper 7 rồi ... :-) – Anlo

+2

Điều này không cố định ở 7.1 trong VS 2012. Tuy nhiên, +1 để chỉ ra điều đó. Nó đã khiến tôi phát điên vì sao nó không cho thấy kết quả không có lý do –

Các vấn đề liên quan