C# 依赖项解析异常
我正在我的项目中进行单元测试。当我尝试对我的方法进行单元测试时,一个浏览器会弹出并突然停止,之后我得到了一个很长的异常,我粘贴了以下内容。 我不知道是什么原因造成了这样的混乱,如何解决 例外情况: BrowseHost类 单元测试类 下面是我直接浏览的URL的屏幕截图C# 依赖项解析异常,c#,unit-testing,selenium-webdriver,C#,Unit Testing,Selenium Webdriver,我正在我的项目中进行单元测试。当我尝试对我的方法进行单元测试时,一个浏览器会弹出并突然停止,之后我得到了一个很长的异常,我粘贴了以下内容。 我不知道是什么原因造成了这样的混乱,如何解决 例外情况: BrowseHost类 单元测试类 下面是我直接浏览的URL的屏幕截图 从您提供的内容很难判断,但堆栈跟踪中有一条线索: System.TypeInitializationException:“BankingSite.FunctionalUITests.BrowserHost”的类型初始值设定项引发异
从您提供的内容很难判断,但堆栈跟踪中有一条线索: System.TypeInitializationException:“BankingSite.FunctionalUITests.BrowserHost”的类型初始值设定项引发异常。 -->Autofac.Core.DependencyResolutionException:执行解析操作时引发异常。有关详细信息,请参阅InnerException。-->不是一个数字。有关详细信息,请参阅内部异常。 -->System.InvalidOperationException:不是数字
检查BankingSite.FunctionalUITests.BrowserHost的构造函数,看看是否可以找到导致错误的行。显然,它需要一个数字值,但收到的却是其他值。事实上,我正在跟踪一个Pluralsight代码,我也在跟踪同一行代码。奇怪的是,每当我尝试运行测试时,我的firefox浏览器会弹出我们,然后突然停止?因为这个类叫做BrowserHost,我猜是这样的此特定UI测试尝试启动浏览器并访问页面。所以这一部分并不是那么意外。是的,John browser应该弹出并自动执行一些逻辑,比如输入一些文本框值。它在启动后突然停止是什么意外情况?我想实际上,我的单元测试项目没有调用应用程序BankingSite。我尝试将BankingSite作为独立项目运行,但它工作正常?由于异常,它停止了。您必须修复异常。如果没有看到引发异常的代码,我无法告诉您是什么导致了异常。如果我不得不猜测的话,某个安装配置的某个地方有一个错误的值。BankingSite.FunctionalUITests.BrowserHost的构造函数。但是在你发布它之前,也许你可以用一个调试器一步一步地完成它,看看你是否能找到答案。。
public static class BrowserHost
{
public static readonly SelenoHost Instance = new SelenoHost();
public static readonly String RootUrl;
static BrowserHost()
{
Instance.Run("BankingSite", 1468);
RootUrl= Instance.Application.Browser.Url;
}
}
namespace BankingSite.FunctionalUITests
{
[TestFixture]
public class LoanApplicationTest
{
[Test]
public void ShouldAcceptLoanApplication()
{
BrowserHost.Instance
.Application.Browser
.Navigate()
.GoToUrl($@"{BrowserHost.RootUrl}\LoanApplication\Apply");
var firstNameBox = BrowserHost.Instance.Application
.Browser
.FindElement(By.Id("FirstName"));
firstNameBox.SendKeys("Gentry");
var lastNameBox = BrowserHost.Instance.
Application.
Browser.
FindElement(By.Id("LastName"));
lastNameBox.SendKeys("Smith");
var ageBox = BrowserHost.Instance
.Application
.Browser
.FindElement(By.Id("Age"));
ageBox.SendKeys("40");
var incomeBox = BrowserHost.Instance
.Application
.Browser
.FindElement(By.Id("AnnualIncome"));
incomeBox.SendKeys("9999999");
Thread.Sleep(10000);
var applyButton = BrowserHost.Instance
.Application
.Browser
.FindElement(By.Id("Applt"));
applyButton.Click();
Thread.Sleep(10000);
var acceptMessageText = BrowserHost.Instance
.Application
.Browser
.FindElement(By.Id("acceptMessage"));
Assert.That(acceptMessageText, Is.EqualTo("Congratulations Gentry - Your Application was accepted!"));
Thread.Sleep(10000);
}
}