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

How to save my Email Messages - Team Services

我已经编写了一些集成测试(使用 XUnit)来测试 SmtpClient。基本上我在 app.config

中覆盖它
configuration>
    <system.net>
        <mailSettings>
            <smtp deliveryMethod="SpecifiedPickupDirectory">
                <specifiedPickupDirectory pickupDirectoryLocation="F:\EmailTests\"/>
            </smtp>
        </mailSettings>
    </system.net>
</configuration>  

现在很明显,由于以下参考,此测试在团队服务上失败了:

E:\EmailTests

此外,此覆盖不包括相对路径。

在构建过程中我需要保存数据的 TFS 中应该如何处理这些场景?

您需要将 EmailTests 文件夹作为 Visual Studio 中单元测试项目的一部分,并将 Copy Local 属性 设置为 True。这样做为您提供了两个选择:

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

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

Here 是针对类似问题的所有预定义 VSO 变量的 link。