Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将参数传递给TeamCity Test Runner?_C#_.net_Unit Testing_Configuration_Teamcity - Fatal编程技术网

C# 如何将参数传递给TeamCity Test Runner?

C# 如何将参数传递给TeamCity Test Runner?,c#,.net,unit-testing,configuration,teamcity,C#,.net,Unit Testing,Configuration,Teamcity,如何将参数传递给TeamCity测试运行者 我在teamcity项目中添加了一个构建配置,它将测试项目从TFS复制到服务器上的本地位置,然后使用NUnit运行测试并显示结果 问题是,当测试从我的本地pc运行时,它们应该使用一些配置,当它们从Dev Automated Build和Test Automated Build运行时,它们应该使用其他配置,并且所有配置都应该在TFS中 例如,BaseUrl和连接字符串配置 private static readonly string BaseUrl =

如何将参数传递给TeamCity测试运行者

我在teamcity项目中添加了一个构建配置,它将测试项目从TFS复制到服务器上的本地位置,然后使用NUnit运行测试并显示结果

问题是,当测试从我的本地pc运行时,它们应该使用一些配置,当它们从Dev Automated Build和Test Automated Build运行时,它们应该使用其他配置,并且所有配置都应该在TFS中

例如,BaseUrl和连接字符串配置

private static readonly string BaseUrl =    ConfigurationManager.AppSettings[AppSettingKey.BaseUrl];
目前,我已将一个web.config文件添加到我的项目中,该文件仅在本地运行良好

那么,如何将这些参数传递给TeamCity构建配置(在开发和测试环境中配置)

即使创建单独的web.config文件(例如dev.web.config和staging.web.config),我也需要一种方法来告诉构建配置使用哪个配置文件

希望问题清楚


非常感谢。

开悟了,找到了解决方案(在这里提交问题之前应该多考虑一下)

我只需要创建单独的dev.app.config和staging.app.config文件,然后在teamcity的“版本控制设置”页面上,我可以定义规则,例如将此文件复制到某个地方

所以我只是将文件复制到根app.config上;就这样

Rule:
+: SolutionName\Tests\ConfigFiles\Dev\App.config=>SolutionName\Tests\App.config

考虑使用配置参数,即Build | Release

在本地使用调试构建并在TeamCity上发布。可以使用MSBuild参数(/p:Configuration=Release)执行此操作

然后使用此处的解决方案()使用正确的app.config

我更喜欢这个解决方案,因为它将定义保留在解决方案/项目中,而不是构建中


[我添加此项只是为了完整性-我最初采用此方法,但后来发现了另一种解决方案]

版本控制设置中的规则仅适用于目录,因此更好的方法是使用Build step-命令行

转到“设置”部分中的“生成步骤” 并使用以下设置添加生成步骤

Command Line 
Custom script: copy TeamCity.App.config App.config
Execute: Only if all previous steps were successful

重新排序此步骤,并在编译步骤之前运行它

我很高兴您回到这一步,因为我也不确定如何解决此问题。不幸的是,你在TeamCity中使用“规则”的建议对我不起作用。(使用TeamCity 6.5)在规则弹出窗口上,TeamCity有文档,注意:签出规则只能设置为目录,不支持文件。因此,我添加了一个新的命令行步骤作为第一步,它通过“自定义脚本”机制执行复制命令。现在它工作得很好。