2013-07-11 49 views
5

Tôi có thể chạy các kiểm tra WatiN của mình bằng ReSharper mà không gặp sự cố nào. Mỗi bài kiểm tra có thuộc tính RequiresSTA và chạy tốt.Các phương pháp SetUp và TearDown có cần [RequiresSTA] nếu các thử nghiệm có nó không?

Khi tôi cố gắng chạy tất cả các bài kiểm tra trong lớp (TestFixture) tôi nhận được lỗi sau:

One or more child tests had errors 
Exception doesn't have a stacktrace 
<testname> ignored: Invalid signature for SetUp or TearDown method: TestSetup 
<testname> ignored: Invalid signature for SetUp or TearDown method: TestSetup 
<testname> ignored: Invalid signature for SetUp or TearDown method: TestSetup 

Lỗi không chỉ ra những gì tôi cần phải thay đổi để làm cho nó làm việc.

Nếu sau đó tôi chọn tất cả các thử nghiệm đã bị bỏ qua trong cửa sổ Kiểm tra đơn vị phiên, tôi có thể chạy chúng mà không gặp sự cố.

Tôi phải thay đổi điều gì để cho phép tôi chạy tất cả các thử nghiệm trong TestFixture?

Trả lời

18

Tôi đã gặp vấn đề tương tự. Tôi đã thay đổi phương thức SetUp() và TearDown() thành công khai, sau đó nó hoạt động.

+1

Điều này cũng có vẻ là một vấn đề trong ReSharper 9 mà giải pháp này dường như giải quyết. –

+0

'protected' cũng hoạt động. –

0

Tôi đã luôn đặt trạng thái căn hộ trong tệp App.config của giải pháp của tôi và NUNit GUI runner chạy toàn bộ đồ đạc như mong đợi.

App.config sẽ bắt đầu như thế này.

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <sectionGroup name="NUnit"> 
     <section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/> 
    </sectionGroup> 
    </configSections> 
    <NUnit> 
    <TestRunner> 
     <!-- Valid values are STA,MTA. Others ignored. --> 
     <add key="ApartmentState" value="STA"/> 
    </TestRunner> 
    </NUnit> 
    <appSettings> 
........ 

Chỉnh sửa: Tôi đang sử dụng Watin2.1 và NUnit 2.5.