我为我正在研究的API写了很多集成测试。
如果我在本地运行集成测试,我想自己托管API并针对它运行集成测试。
但是我在VS Team服务上有一个构建定义,在部署API之后运行集成测试,我想针对部署的API运行测试,但为了做到这一点,我必须更改我的代码,使它不再自我托管它,然后针对部署的API进行测试。
有没有办法在运行时检测我的测试运行的位置?
由于
答案 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...");
}