【问题标题】:How do I check if code is running from Visual Studio or from Automated Build如何检查代码是从 Visual Studio 运行还是从自动构建运行
【发布时间】:2015-04-23 14:21:55
【问题描述】:

我们有一个场景,我们有 sql 单元测试,为此我们有一个 sql 测试项目,它从 App.config 读取连接字符串。

我们现在希望,如果我们从 Visual Studio 运行测试,它应该使用 ConnectionStringA,否则如果它从自动构建运行,它应该使用 ConnectionStringB。

我能否以某种方式确定测试是在 visualstudio 下运行还是在自动构建下运行?

我尝试过Debugger.IsAttached,但如果我尝试运行测试,那将无法正常工作

我也尝试检查Process.GetCurrentProcess().ProcessName.ToLower(),但我不确定这是否是万无一失的方法。

我研究了如何使用BuildingInsideVisualStudio,但无法让它发挥作用。

【问题讨论】:

  • 首先,您使用的是什么单元测试运行器?这将大大有助于人们回答您的问题。和往常一样,whathaveyoutried.com
  • o 是的,我正在使用 Resharper 和 Visual Studio,以及默认的 Visual Studio tfs 构建
  • 添加了我到目前为止尝试过的内容
  • 为什么需要判断测试是在VS下运行还是在build下运行?构建应该在构建服务器上使用 ConnectionStringB 更新 app.config,然后将在正确的数据库上运行测试。

标签: c# visual-studio-2010 unit-testing tfsbuild


【解决方案1】:

如何设置环境变量或注册表值并在运行时读取它?

【讨论】:

    【解决方案2】:

    如果您正在运行 TFS/VSTS,您可以查找列出的任何环境变量 on the build variables docs,并使用它们来确定您是否在本地。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 2016-09-28
      相关资源
      最近更新 更多