Sar*_*els 5 c# mstest path deploymentitem
我想DeploymentItem在MSTest单元测试中使用静态变量作为参数,但似乎我不能这样做.当单元测试运行时,需要将一个XSL文件与DLL文件一起复制,并将该位置定义为
private static string _xslPath = Path.Combine("MyProjectDir", "transform.xsl");
Run Code Online (Sandbox Code Playgroud)
但是,当我然后执行以下操作时:
[TestMethod]
[DeploymentItem(DLL)]
[DeploymentItem(_xslPath)]
public void XmlToResultsTest() { }
Run Code Online (Sandbox Code Playgroud)
我得到这个构建错误:
属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式
好的,好的,但是自己组装路径似乎太脏了:
[DeploymentItem(@"MyProjectDir\transform.xsl")]
Run Code Online (Sandbox Code Playgroud)
我在这里过于挑剔想要使用Path.Combine吗?我还缺少另一种选择吗?我想我可以把XSL文件放在根解决方案目录中,这样我就不必将项目目录作为路径的一部分传入.
Mar*_*ell 10
属性只能使用常量字符串,所以不能:你不能这样做(你必须使用预组合版本,或文字串联 - 不是Path.Combine).您也可以使用测试项目部署设置(testrunconfig?),但坦率地说,我更喜欢使用NUnit方法来标记文件(在csproj中,与正常情况一样)进行部署.我还没弄清楚为什么MS添加了一种单独的方式来定义这个......