C# 依赖项解析异常

C# 依赖项解析异常,c#,unit-testing,selenium-webdriver,C#,Unit Testing,Selenium Webdriver,我正在我的项目中进行单元测试。当我尝试对我的方法进行单元测试时,一个浏览器会弹出并突然停止,之后我得到了一个很长的异常,我粘贴了以下内容。 我不知道是什么原因造成了这样的混乱,如何解决 例外情况: BrowseHost类 单元测试类 下面是我直接浏览的URL的屏幕截图 从您提供的内容很难判断,但堆栈跟踪中有一条线索: System.TypeInitializationException:“BankingSite.FunctionalUITests.BrowserHost”的类型初始值设定项引发异

我正在我的项目中进行单元测试。当我尝试对我的方法进行单元测试时,一个浏览器会弹出并突然停止,之后我得到了一个很长的异常,我粘贴了以下内容。 我不知道是什么原因造成了这样的混乱,如何解决

例外情况:

BrowseHost类

单元测试类

下面是我直接浏览的URL的屏幕截图


从您提供的内容很难判断,但堆栈跟踪中有一条线索:

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);

        }
    }