C# 如何将参数传递给TeamCity Test Runner?
如何将参数传递给TeamCity测试运行者 我在teamcity项目中添加了一个构建配置,它将测试项目从TFS复制到服务器上的本地位置,然后使用NUnit运行测试并显示结果 问题是,当测试从我的本地pc运行时,它们应该使用一些配置,当它们从Dev Automated Build和Test Automated Build运行时,它们应该使用其他配置,并且所有配置都应该在TFS中 例如,BaseUrl和连接字符串配置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 =
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有文档,注意:签出规则只能设置为目录,不支持文件。因此,我添加了一个新的命令行步骤作为第一步,它通过“自定义脚本”机制执行复制命令。现在它工作得很好。