依赖性解决方案例外

时间:2017-04-15 19:26:23

标签: c# unit-testing selenium-webdriver

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

例外:

https://paste.ubuntu.com/24389202/

BrowseHost Class

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

UnitTest Class

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

        }
    }

以下是我正在直接浏览的网址的屏幕截图。

enter image description here

1 个答案:

答案 0 :(得分:1)

很难说清楚你提供了什么,但是堆栈跟踪中有一条线索:

  

System.TypeInitializationException:'BankingSite.FunctionalUITests.BrowserHost'的类型初始值设定项引发异常。     ----> Autofac.Core.DependencyResolutionException:执行解析操作时抛出异常。有关详细信息,请参阅InnerException。 --->不是数字(详见内部异常。)     ----> System.InvalidOperationException:不是数字

检查BankingSite.FunctionalUITests.BrowserHost的构造函数,看看是否可以找到导致错误的行。显然,它期待一个数值,但却收到了别的东西。