我编写了一些集成测试(使用XUnit)来测试SmtpClient
。基本上我在app.config
configuration>
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="F:\EmailTests\"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
现在很明显,由于以下参考,此测试在Team Services上失败:
E:\ EmailTests
除了相对路径外,此覆盖也不会。
如何在构建期间需要保存数据的TFS中处理这些方案?
答案 0 :(得分:2)
您需要将EmailTests
文件夹作为Visual Studio中Unit Test项目的一部分,Copy Local
属性设置为True
。这样做可以为您提供两个选项:
由于该文件夹已经是代码库的一部分,因此在开始构建之前,VSO将检出该文件夹。然后,如果您需要在其中一个构建任务中访问它,则可以使用预定义的构建变量Build.SourcesDirectory
并将其与您的文件夹名称组合,如下所示。您也可以在配置文件中使用它,替换硬编码的F:\EmailTests\
。
$(Build.SourcesDirectory)\EmailTests\
或者,您可以使用另一个VSO预定义变量Build.BinariesDirectory
来访问此文件夹。但是,只有在完成单元测试项目的构建时,这才有用。
Here是所有预定义VSO变量的链接,用于解决类似问题。