如何在 MSBuild 单元测试中访问 TeamCity 配置参数

4

有没有一种方法可以在MSBuild单元测试中访问配置参数?

我已经配置了TeamCity以每隔几个小时运行一次漫长的测试集。偶尔,我想使用特定参数(限制样本测试集的字符串)运行测试。我不想检查单元测试的更改,而是想在TeamCity中点击“运行…”并设置某个参数的值。

这可行吗?

1个回答

5
一个可能的解决方案是从 TeamCity 的构建参数设置中设置环境变量,然后让测试程序查找这个环境变量来确定运行什么测试。
如果您选择配置步骤菜单中的构建参数并添加一个新的构建参数,然后选择类型为“EnvironmentVariable (.env)”,您可以将其设置为某个值,例如:当您想运行所有测试时将其设置为“all”,当您想运行一部分测试时将其设置为其他值。
您可能能够创建一个模板,不为此构建参数设置任何值,然后有一个模板实例将“all”值设定为自动化测试运行。然后基于此模板创建另一个构建,不为此设置值,并用于手动运行。我相信,如果您没有为此参数设置值,则 TeamCity 将在您尝试运行构建时提示您(但我不能确定)。
一旦您在 TeamCity 中定义了一个名为“env.file_path_contains”的变量,您就可以使用以下代码在测试中访问它的值:
System.Environment.GetEnvironmentVariable("file_path_contains")

是的,我认为这就是我正在寻找的。只是为了完整起见: 如果我定义环境变量:“env.File_Path_Contains” 我可以在我的测试中访问System.Environment.GetEnvironmentVariable("File_Path_Contains") 或 System.Environment.GetEnvironmentVariable("env.File_Path_Contains") - Marek
@Marek,谢谢。我已经更新了答案,并加入了你用来访问环境的代码。 - Sam Holder
System.Environment.GetEnvironmentVariable("file_path_contains") 运行得非常好,不需要添加 'env',感谢您! - reachfreedom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接