测试发现程序“ NUnit3TestDiscoverer”正在加载测试时发生异常

问题描述

我构建了一个简单的NUnit框架以在Visual Studio 2015中运行Selenium WebDriver C#测试。

我已经安装了NUnit v3.12,Selenium WebDriver v3.141,NUnit3TestAdapter v3.17扩展。

如果无法下载浏览器驱动程序,为什么会出现此错误

******------ discover test started ------
An exception occurred while test discoverer 'NUnit3Testdiscoverer' was loading tests. Exception: Object reference not set to an instance of an object.
========== discover test finished: 0 found (0:00:03.1151069) ==========******

下面的代码尝试导航到网页并登录到应用程序:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Edge;
using OpenQA.Selenium.Firefox;


namespace eMPWR_TEST_AUTOMATION
{

    [TestFixture] // This is your Test Suite containing all you below TESTS ([Test])

    public class eMPWR_SmokeTests
    {
        private IWebDriver driver;
        private StringBuilder verificationErrors;
        private String baseURL;
        private bool acceptNextAlert = true;

        [SetUp]
        public void SetUpTests()
        {
            driver = new FirefoxDriver();
            baseURL = "https://va--fasaoadev.my.salesforce.com";
            verificationErrors = new StringBuilder();
        }

        [TearDown]
        public void TearDownTests()
        {
            try
            {
                driver.Quit();
            }
            catch (Exception)
            {
                //ignore errors if unable to close the browser
            }

            Assert.AreEqual("",verificationErrors.ToString());
        }

        [TestCase("UserName1","Password1")] // Using 3 scenarios instead of below variables
        [TestCase("UserName2","Password2")]
        [TestCase("UserName3","Password3")]
        public void eMPWR_Login(string UserName,string Password)
        {
            //String UserName = "UserName1";
            //String Password = "Password1";
            String Url = "www.login.Salesforce.com";

            IWebDriver driver = new FirefoxDriver();

            driver.Navigate().GoToUrl(Url);
            driver.FindElement(By.Id("UserName")).SendKeys(UserName);
            driver.FindElement(By.Id("Password")).SendKeys(Password);
            driver.FindElement(By.Id("Login")).Click();

            String ExpectedData = "Salesforce";
            String ActualData = "Sales Force";

            Assert.That(ExpectedData,Is.EqualTo(ActualData)); // from NUnit Framework

            driver.Close();
        }

        [Test]
        public void eMPWR_SearchSSN()
        {
            string URL = "https://va--fasaoadev.my.salesforce.com";
            string FN = "John";
            string LN = "Doe";
            string Email = "John.Doe@aol.com";
            string PWD = "F00tB@11";

            IWebDriver driver = new FirefoxDriver();

            driver.Navigate().GoToUrl(URL);
            driver.FindElement(By.CssSelector("input.submitbutn")).Click();
            driver.FindElement(By.Id("ctl00_MainContent.txtFirstName")).Clear();
            driver.FindElement(By.Id("ctl00_MainContent.txtFirstName")).SendKeys(FN);
            driver.FindElement(By.Id("ctl00_MainContent.txtLastName")).Clear();
            driver.FindElement(By.Id("ctl00_MainContent.txtLastName")).SendKeys(LN);
            driver.FindElement(By.Id("ctl00_MainContent.txtEmail")).Clear();
            driver.FindElement(By.Id("ctl00_MainContent.txtEmail")).SendKeys(Email);
            driver.FindElement(By.Id("ctl00_MainContent.txtVerifyPassword")).Clear();
            driver.FindElement(By.Id("ctl00_MainContent.txtVerifyPassword")).SendKeys(PWD);
            driver.FindElement(By.CssSelector("input.submitbutn")).Click();

            Assert.AreEqual("Login Successful",driver.FindElement(By.Id("ctl00_MainContentlblTransactionResult")).Text);
        }
    }
}

解决方法

我关闭了 Visual Studio 2015--> 以管理员身份运行--> 构建解决方案。 从那时起它应该可以解决您的问题。 确保 nunit.framework 参考版本为最新(或 3.13.1.0)。

相关问答

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