5

私は、Visual Studio 2010でうまく機能していたデータ駆動型ユニットテストをいくつか行っています。これらのテストは、次のパターンを使用して実装されました。vs2010で正常に動作したとき、vs2012でデータ駆動ユニットテストが失敗するのはなぜですか?

[TestMethod()] 
[DeploymentItem("path_to_data_dir_relative_to_solution\\my_data.xml")] 
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\my_data.xml", "Token", DataAccessMethod.Sequential)] 
public void MyTestMethod() 
{ 
    // Arrange 
    const string EXPECTED_PARAM_NAME = "table"; 
    string data = TestContext.DataRow["Data"].ToString(); 
    var sut = new MyClassUnderTest(); 

    // Act 
    sut.DoSomething(data); 

    // Assert 
    Assert.IsTrue(sut.DidSomething); 
} 

これは私の解決策の構造です。私は、Visual Studio 2012で同じテストを実行すると

  • MySolutionFolder
    • MyTestProjectFolder
    • MyTestDataFolder
      • my_data.xml

、彼らがで失敗しますフォルティエラーメッセージ。

結果メッセージ:ユニット・テスト・アダプターがデータ・ソースへの接続またはデータの読み取りに失敗しました。このエラーのトラブルシューティングの詳細については、MSDNライブラリの「データ駆動型テストのトラブルシューティング」(http://go.microsoft.com/fwlink/?LinkId=62412)を参照してください。エラーの詳細:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

私のユニットテストが突然失敗するのはなぜですか? Visual Studioの2010年に

答えて

8

は、DeploymentItem属性がソリューションに相対的であるが、Visual Studioの2012年に、それは、プロジェクトに相対的です。単にプロジェクトフォルダに対して相対パスDeploymentItemを指定するだけで、単体テストが再び動作し始めます。

詳細については、次のリンクを参照してください。

http://social.msdn.microsoft.com/Forums/en-US/vsunittest/thread/4a8403a2-b495-4120-aad3-0d0becc7e45e/

関連する問題