1

TeamFoundationBuildで実行したい一連の単体テストがあります。これらのテストは、ファイルシステムから一連のファイルを読み取り、エラーをチェックします。テストファイルのデータをテストDLLに移動できません。重要なのは、インストーラーに同梱/バンドルされているこれらのファイルが有効であることを確認することです。

テストをローカルで実行すると、テストされたDLLがこれらのファイルに依存しているため、これは正常に機能します。そのため、Visual Studioは、テストDLLを構築するときにそれらをコピーします。ただし、ビルドサーバーで実行すると、ビルドサーバーはテストDLLを、メタデータで宣言されているように直接または間接的に参照するアセンブリとともに、別のディレクトリにコピーします。その結果、テスト対象のファイルは「依存アセンブリ」として宣言されていないため(また、宣言されていないため)、テストでファイルを見つけることができません。

どうすればこれを修正できますか?

4

1 に答える 1

3

ダイアログ内.testsettingsには、Deploymentというカテゴリがあります。これを有効にすると、ビルドでデプロイするファイルやディレクトリを追加できます。

MSTestを使用していると仮定すると、さらに[Microsoft.VisualStudio.TestTools.UnitTesting.DeploymentItem(path)]、依存関係を使用するテストメソッドにファイルごとに1つの属性を設定します。

例えば:

[TestMethod]
[DeploymentItem("TestData/file1.xml")]
[DeploymentItem("TestData/file2.xml")]
public void IntegrationTestMethod()
{
    //...
}
于 2012-09-20T17:35:46.987 に答える