如何使用已发布的 Web 应用程序使用 selenium 有效运行 .net 核心单元测试

问题描述

我有一个 .NET Core v2.2 应用程序。我正在尝试启动基于单元测试项目的 Selenium UI 测试(尝试使用 NUnit、xUnit)。

测试可以从 VS(使用 TestExplorer)本地启动,也可以从本地 .NET Core 2.2 应用启动。

目标是在 IIS 中部署应用程序后,使用视图中的按钮开始测试。

我尝试过使用反射启动测试和实例化类,或在命令行中将其作为进程启动(通过运行 nunit3-console.exe、dotnet test 或 vstest.console.exe)。

使用时

dotnet test {PathToTestDll} --filter "Name ~{testName}" --logger trx --results-directory {resultDir}

命令,我可以从cmd开始测试,但是当尝试打开已发布的站点时,我收到缺少dll的错误

无法加载文件或程序集“Microsoft.VisualStudio.Coverage.CoreLib.Net,版本=16.9.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”。系统找不到指定的文件
System.Reflection.ReflectionTypeLoadException:无法加载一个或多个请求的类型。),这是 VS Enterprise 的一部分,我目前使用的是 VS Professional 2019 版本 16.9.1。

如果我尝试使用

nunit3-console.exe --test={testFullyQualifiedname} {PathToTestDll}

我因缺少 nunit.framework 包而收到另一个错误

NUnit.Engine.NUnitEngineException : 加载测试时驱动程序发生异常。
System.IO.FileNotFoundException:无法加载文件或程序集“nunit.framework,版本=3.12.0.0,文化=中性,PublicKeyToken=2638cd05610744eb”或其依赖项之一。系统找不到指定的文件
--NUnitEngineException
加载测试时驱动程序中发生异常。)无论我是在 nunit.framework 文件所在的目录中执行它(C:\Users{user}.nuget\packages\nunit{version}),还是已发布的项目的目录(在 C:\inetpub\wwwroot{projectName} 中的某处)。

现在使用反射时,应用发布后,测试失败,并出现相同的错误(javascript错误:无法在“文档”上执行“elementsFromPoint”:提供的双精度值是非有限的。(会话信息: chrome=88.0.4324.190)),这是一个 Selenium 错误,如果我没有记错的话,使用非唯一的方式来定位元素。对于每个测试。我已经检查过了,可以向你保证,事实并非如此。

此时,我已经接受了我正在做某事或所有事情都是错误的,但无法确定是什么。

我不得不说,我目前使用的是 NUnit3、chromedriver v88.0.4324.96、Selenium.WebDriver 3.141.0

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...