Ger*_*ald 12 c# tfs unit-testing
我有一个具有控制台应用程序和单元测试的解决方案.
var target = new Validator();
var targetFile = @"C:\Folder\SubFolder\AnotherSubFolder\Development\DEV\src\UnitTest\TargetFolder\file.xml";
bool actual = target.Validate(targetFile);
Assert.AreEqual(true, actual);
Run Code Online (Sandbox Code Playgroud)
Validator位于控制台应用程序项目中,而我的file.xml位于单元测试项目内的文件夹中.
这个单元测试正在通过,但是我想确保当我将其签入到我的tfs或构建服务器时,它仍然可以找到我的targetFile.
我怎么改变targetFile的路径?
提前致谢!
如果我正确理解了您的问题,那么产品代码(在控制台应用程序中)依赖于测试项目中的项目是不好的,因此我建议您转到file.xml产品代码项目.
为了解决您的路径问题,我认为最好的方法是使用" 复制到输出目录"属性作为"始终复制"或" 复制如果更新",您可以在"VS属性"窗口中找到该属性.
请查看以下步骤.
file.xml产品项目(例如,数据文件夹),请创建一个文件夹.file.xml文件夹.file.xml.构建并进行单元测试
Assert.IsTrue(File.Exists(@"Data\file.xml"));
Run Code Online (Sandbox Code Playgroud)
在这种情况下,VS将自动使用file.xmltest poject的输出文件夹下的数据文件夹.
的位置Validator不应该是相关的。任何相对路径都应该相对于测试应用程序正在执行的目录,因此只需设置targetFile为从那里开始的相对路径即可。然后确保您在 bulid 服务器上与您的开发机器上的相对位置相同的位置运行测试。
额外提示:使用Assert.IsTrue(actual);