2013-03-26 47 views
0

我正在嘗試在VB.NET中編寫MSTest數據驅動測試。該代碼非常簡單:VB.NET - 數據驅動測試不會生成

<TestMethod(), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "AlgorithmTestData.CSV", "AlgorithmTestData#CSV", DataAccessMethod.Sequential)> 
Public Sub ScoreAllData() 
    Dim server = New Server.ScoringData 

    Dim q1 = Convert.ToByte(TestContext.DataRow(1)) 
    Dim q2 = Convert.ToByte(TestContext.DataRow(2)) 
    Dim q3 = Convert.ToByte(TestContext.DataRow(3)) 
    Dim q4 = Convert.ToByte(TestContext.DataRow(4)) 
    Dim q5 = Convert.ToByte(TestContext.DataRow(5)) 
    Dim q6 = Convert.ToByte(TestContext.DataRow(6)) 
    Dim q7 = Convert.ToByte(TestContext.DataRow(7)) 
    Dim q8 = Convert.ToByte(TestContext.DataRow(8)) 
    Dim q9 = Convert.ToByte(TestContext.DataRow(9)) 
    Dim q10 = Convert.ToByte(TestContext.DataRow(10)) 
    Dim q11 = Convert.ToByte(TestContext.DataRow(11)) 
    Dim q12 = Convert.ToByte(TestContext.DataRow(12)) 

    Dim item = New AlgorithmItem(q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12) 
    Dim result = server.Score(item) 
    Assert.AreEqual(47.86814688, result)   
End Sub 

然而,這個代碼將無法建立。我得到以下錯誤(每個呼叫)有關的TestContext.DataRow調用

Reference to a non-shared member requires an object reference 

我見過的每一個C#示例使用相同的靜態調用。我的項目似乎有所有正確的導入,包括System.Data,但這不會建立。

任何幫助,將不勝感激!

回答

1

對不起,這是在C#中,但同樣應該爲你工作。 在我們的測試課中,我們有以下屬性。似乎爲我們工作(雖然我不知道是否需要或如果有人只是決定添加它的樂趣)

/// <summary> 
///Gets or sets the test context which provides 
///information about and functionality for the current test run. 
///</summary> 
public TestContext TestContext { get; set; } 
+0

這樣做。我添加了一個vb.net屬性,它現在可以工作。顯然,Microsoft使用屬性注入來注入TestContext。謝謝! – 2013-03-26 19:24:12