16

MSTestを使用して、 DeploymentItemAttributeの相対パス ルートは何ですか。

4

3 に答える 3

18

MSDNページごと...

相対パスは、.testrunco​​nfig ファイルにある RelativePathRoot 設定に相対的です。

その設定は、デフォルトではSolution directoryです。したがって、このプロジェクト構造がある場合

SecretProject\
    ComponentA\
    ComponentA.Test\
        Resources\
            required.xml
        ComponentA.Test.csproj
        Tests.cs
    SecretProject.sln

そして、 required.xmlをデプロイしたい場合は、このような DeploymentItemAttribute を作成します

[TestClass]
public class Tests
{
    [TestMethod]
    [DeploymentItem("ComponentA.Test\Resources\required.xml")]
    public void Test() 
    {

    }
}

ファイルのプロパティを「コンテンツ」および「常にコピー」または「新しい場合はコピー」に設定する必要があるようです。この MSDN ページに高度な例があります。

于 2009-11-30T21:50:18.367 に答える
1

私の場合、RelativePathRoot のデフォルトがソリューションが存在するディレクトリであると仮定することは正しくありませんでした。また、.testrunco​​nfig ファイル内で RelativePathRoot が定義されていませんでした。RelativePathRoot のデフォルトは、ソリューションの /bin/debug ディレクトリであることがわかりました。

その時点から戻って、単体テスト用にデプロイしようとしていたファイルまで歩いてみると、うまくいきました。

于 2013-03-06T19:51:13.103 に答える