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呼び出しに関連する次のエラー(呼び出しごとに1つ)が発生します

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 に答える