我正在尝试使用Selenium测试ASP.NET Core网站 . 我有2个项目:用于网站的ASP.NET Core和用于测试的另一个MSTests项目 .

为了从测试项目启动网站,我在测试项目中添加了ASP项目的参考,并做了:

[AssemblyInitialize]
public static void AssemblyInitialize(TestContext context)
{
    WebHost.CreateDefaultBuilder()
        .UseContentRoot("<the ASP content folder>")
        .UseKestrel(options =>
        {
            options.Listen(IPAddress.Any, 5000);
        })
        .UseStartup<Startup>()
        .Build()
        .RunAsync();
}

这个命令成功了,当我这样做时: driver.Url = "http://localhost:5000"; 与Selenium WebDriver 我收到一个内部服务器错误:

缺少一个或多个编译引用 . 确保您的项目引用了“Microsoft.NET.Sdk.Web”,并且“PreserveCompilationContext”属性未设置为false .

经过一番挖掘,我意识到ASP项目的 deps.json 文件没有复制到测试项目输出目录 . 如果我手动将该文件从ASP输出目录复制到Test输出目录,则错误消失 .

那么如何强制构建过程将"referenced"项目的 deps.json 文件创建到输出目录?

是否有另一种方法可以对ASP.NET Core项目进行Selenium测试?