我正在尝试在VB.NET中编写MSTest数据驱动测试。代码非常简单:
<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,但这不会构建。
任何帮助将不胜感激!
答案 0 :(得分: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; }