0

我正在尝试在 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 但这不会构建。

任何帮助,将不胜感激!

4

1 回答 1

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; }
于 2013-03-26T17:05:07.997 回答