我正在尝试使用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测试?