2014-01-20 26 views
2

以下簡單的TestFixture給出了一個不確定的結果。爲什麼?NUnit Inconclusive

[TestFixture] 
internal class SomeTest 
{ 
    [TestCase] 
    void myTest() 
    { 
     Assert.AreEqual(3,3); 
    } 
} 

回答

6

測試用例方法必須是公共的(顯然):

internal class SomeTest 
{ 
    [TestCase] 
    public void myTest() //works now 
    { 
     Assert.AreEqual(3,3); 
    } 
} 
+0

我也注意到,除非類是公開的,否則我無法在Visual Studio中一起運行所有測試。 – OnABauer

1

沒錯,測試方法已經得到是公共按照NUnit的文檔。 nUnit如何去找你的測試。 )

http://www.nunit.org/index.php?p=test&r=2.2.1

The signature for a test method is defined as follows: 

    public void MethodName() 
0

在我的情況,TestCaseSource有不同的參數數目比在試驗方法中的參數的。

[Test, TestCaseSource("DivideCases")] 
public void DivideTest(int n, int d, int q) 
{ 
    Assert.AreEqual(q, n/d); 
} 

static object[] DivideCases = 
{ 
    new object[] { 12, 3 }, 
    new object[] { 12, 2 }, 
    new object[] { 12, 4 } 
}; 

這裏DivideCases中的每個對象數組都有兩個項,應該是3,因爲DivideTest方法有3個參數。