检测我的测试是否在Visual Studio Team Services上运行

时间:2016-05-11 21:46:44

标签: c# continuous-integration asp.net-web-api2 integration-testing azure-devops

我为我正在研究的API写了很多集成测试。

如果我在本地运行集成测试,我想自己托管API并针对它运行集成测试。

但是我在VS Team服务上有一个构建定义,在部署API之后运行集成测试,我想针对部署的API运行测试,但为了做到这一点,我必须更改我的代码,使它不再自我托管它,然后针对部署的API进行测试。

有没有办法在运行时检测我的测试运行的位置?

由于

2 个答案:

答案 0 :(得分:1)

如果您使用VSTS Hosted Build代理运行构建和测试,则这些代理的计算机名称格式为“TASKAGENTX-XXXX”。您可以使用它(Environment.MachineName)来确定测试是在VSTS还是本地计算机上运行。

顺便说一句,本地计算机上的测试运行与VSTS有什么区别?它只是一个不同的URL吗?如果是,您可以将配置文件添加到项目中并更新测试以读取配置文件中的URL以进行测试。然后使用SlowCheetah执行转换,以便在构建和测试VSTS时切换URL。

答案 1 :(得分:1)

仅探测VSTS predefined build variables之一。例如:

if (Environment.GetEnvironmentVariable("SYSTEM_DEFINITIONID") != null) 
{
    Console.WriteLine("Running from VSTS...");
}