You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NUnit测试报OneTimeSetUp仅支持Win10,Windows Server2016下如何绕过?

错误根因

该报错并非Azure DevOps、VsTest或NUnit组件的兼容性问题,本质是你测试用的Chromium内核浏览器(Chrome/Edge)的对应驱动,从2022年底的109版本开始新增了系统版本校验逻辑,识别到运行环境为Windows Server系统时会直接抛出「Only supported on Windows 10」的错误,Windows Server 2016虽然内核版本和Win10一致,但驱动默认会排除Server类系统。

可行绕过方案
  • 方案1:降级浏览器与驱动版本
    将测试环境的Chrome/Edge浏览器降级到108及更早版本,同时配套使用对应版本的官方驱动,108及之前版本的驱动无系统版本校验限制,可直接在Windows Server 2016上正常运行。
  • 方案2:添加驱动启动参数跳过校验(最推荐)
    不需要修改现有环境的浏览器、驱动版本,仅需要在初始化Driver实例的代码中,给浏览器配置项添加--disable-os-version-check启动参数,即可强制忽略驱动的系统版本校验逻辑,是改造成本最低、无副作用的方案。
  • 方案3:临时修改系统标识绕过校验(仅建议临时测试使用)
    打开注册表编辑器,定位到路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion,将ProductName的数值从默认的Windows Server 2016临时修改为Windows 10 Pro,测试运行完成后改回原值即可。该方案不需要修改测试代码,但修改系统注册表存在稳定性风险,不建议在生产级测试环境使用。
代码修改示例

你需要在Driver.DriverInstance的初始化逻辑中新增参数配置,以Chrome浏览器为例参考代码如下:

public static IWebDriver DriverInstance
{
    get
    {
        if (driver == null)
        {
            var options = new ChromeOptions();
            // 新增这一行跳过系统版本校验
            options.AddArgument("--disable-os-version-check");
            // 保留你原有的其他驱动配置逻辑
            driver = new ChromeDriver(options);
        }
        return driver;
    }
}

修改完成后你原有OneTimeSetUp中的代码不需要做任何调整,直接运行即可消除报错。

内容的提问来源于stack exchange,提问作者Yonatan Levin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:39:01