当 Azure Pipeline 中 运行 时,VSTest 单元测试对 DNS 服务器 (8.8.8.8) 的 ping 失败

VSTest unit-test's ping of a DNS server (8.8.8.8) fails when running within Azure Pipeline

当 运行 在 Azure Pipeline 中时,VSTest 单元测试对 DNS 服务器 (8.8.8.8) 的 ping 失败。 ping 操作是一些单元测试的一部分。当这些单元测试 运行 在本地计算机上时 - 一切正常。但是,当在 Azure Pipeline CI 上执行相同的单元测试时 - 所有 ping 操作都会失败。 什么是 st运行ge 所有其他基于 Internet 的调用(如 HTTP POST)在本地和 Azure Pipeline CI 上都运行良好。 有什么想法吗?

VSTest unit-test's ping of a DNS server (8.8.8.8) fails when running within Azure Pipeline

恐怕你必须在你的本地机器上设置你的私人代理。

作为测试,我还可以在本地计算机上成功 ping DNS 服务器 (8.8.8.8),但在 Azure 管道上的托管代理上失败。

那是因为:

The ICMP protocol is not permitted through the Azure load balancer, you will notice that you are unable to ping an Azure VM from the internet, and from within the Azure VM, you are unable to ping internet locations.

查看博客 Use port pings instead of ICMP to test Azure VM connectivity 了解更多详细信息。

此外,我们也无法通过 Windows 防火墙允许 Azure VM 上的 ping。

所以,如果你想 ping DNS 服务器,你需要在你的本地机器上创建你的私有代理:

Set Up a Private Agent

希望对您有所帮助。