如何保存我的电子邮件 - 团队服务

时间:2017-11-04 09:21:34

标签: unit-testing azure-devops tfsbuild xunit.net

我编写了一些集成测试(使用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中处理这些方案?

1 个答案:

答案 0 :(得分:2)

您需要将EmailTests文件夹作为Visual Studio中Unit Test项目的一部分,Copy Local属性设置为True。这样做可以为您提供两个选项:

  1. 由于该文件夹已经是代码库的一部分,因此在开始构建之前,VSO将检出该文件夹。然后,如果您需要在其中一个构建任务中访问它,则可以使用预定义的构建变量Build.SourcesDirectory并将其与您的文件夹名称组合,如下所示。您也可以在配置文件中使用它,替换硬编码的F:\EmailTests\

     $(Build.SourcesDirectory)\EmailTests\
    
  2. 或者,您可以使用另一个VSO预定义变量Build.BinariesDirectory来访问此文件夹。但是,只有在完成单元测试项目的构建时,这才有用。

  3. Here是所有预定义VSO变量的链接,用于解决类似问题。