【问题标题】:How to save my Email Messages - Team Services如何保存我的电子邮件 - 团队服务
【发布时间】:2018-04-16 23:33:03
【问题描述】:

我编写了一些集成测试(使用 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 中应该如何处理这些场景?

【问题讨论】:

  • 如果是与文件系统等外部资源交互,则不是单元测试。
  • 我们称之为集成测试

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


【解决方案1】:

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

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

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

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

【讨论】:

猜你喜欢
  • 2011-02-21
  • 2012-04-01
  • 1970-01-01
  • 2010-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多