在C#NUnit中运行测试后没有发生任何事情
首先,我想告诉你,我是C#自动化测试的新手 我创建了NUnit测试项目(.NET Core),在C#NUnit中运行测试时遇到问题。当我在测试资源管理器中单击“运行所选测试”时,什么也没有发生。我的测试资源管理器中没有任何错误。在输出中,我遇到错误System.ArgumentException:路径中存在非法字符 此外,当我尝试从命令行(“C:\Tools\NUnit\bin\net35\nunit3 console.exe”C:\Users\MY\u USER\source\repos\nunitestproject2\nunitestproject2.sln)运行测试时,我发现 无法加载文件或程序集nunit.framework错误 运行测试的唯一方法是命令行和 dotnet测试C:\Users\MY_USER\source\repos\nunitestproject2\nunitestproject2\nunitestproject2.csproj 我的NuGet依赖项:在C#NUnit中运行测试后没有发生任何事情,c#,selenium,webdriver,nuget,nunit,C#,Selenium,Webdriver,Nuget,Nunit,首先,我想告诉你,我是C#自动化测试的新手 我创建了NUnit测试项目(.NET Core),在C#NUnit中运行测试时遇到问题。当我在测试资源管理器中单击“运行所选测试”时,什么也没有发生。我的测试资源管理器中没有任何错误。在输出中,我遇到错误System.ArgumentException:路径中存在非法字符 此外,当我尝试从命令行(“C:\Tools\NUnit\bin\net35\nunit3 console.exe”C:\Users\MY\u USER\source\repos\nu
- Microsoft.NET.Test.Sdk(15.5.0)
- 努尼特(3.9.0)
- NUnit3TestAdapter(3.9.0)
- Selenium.WebDriver(3.141.0)
public class Tests
{
// comment out setup method so this Selenium code does not get run.
// IWebDriver driver;
// [SetUp]
// public void Setup()
// {
// driver = new //ChromeDriver("C:/Users/MY_USER/source/repos/NUnitTestProject1/NUnitTestProject1/bin/Debug/netcoreapp2.1/");
// }
[Test]
public void Test1()
{
Assert.Pass("Passed first test successfully.");
}
}
我试图更改NuGet依赖项的版本
公共类测试
{
IWebDriver;
[设置]
公共作废设置()
{
driver=new ChromeDriver(“C:/Users/MY_USER/source/repos/nunitestproject1/nunitestproject1/bin/Debug/netcoreapp2.1/”;
}
[测试]
公共void Test1()
{
driver.Navigate().gotour(“https://google.com/");
}
}
我将实现一个StartChromeDriver()
方法来正确处理启动ChromeDriver。下面是一个例子:
public IWebDriver StartChromeDriver()
{
var options = new ChromeOptions();
options.AddArgument("--disable-extensions");
options.AddArguments("disable-infobars");
options.AddArgument("--no-sandbox")
driver = new ChromeDriver(options);
return driver;
}
然后用driver=StartChromeDriver()
替换[SetUp]
方法中的driver=new ChromeDriver
调用。
问题可能是在初始化ChromeDriver实例时没有提供任何ChromeOptions()
另外,根据另一位用户的建议,我将编写一个简单的测试,将问题从Selenium和NUnit中分离出来。您可以这样做:
public class Tests
{
// comment out setup method so this Selenium code does not get run.
// IWebDriver driver;
// [SetUp]
// public void Setup()
// {
// driver = new //ChromeDriver("C:/Users/MY_USER/source/repos/NUnitTestProject1/NUnitTestProject1/bin/Debug/netcoreapp2.1/");
// }
[Test]
public void Test1()
{
Assert.Pass("Passed first test successfully.");
}
}
如果您的测试在没有Selenium/ChromeDriver代码的情况下成功运行,那么您知道问题出在Selenium而不是NUnit上。我将实现一个
StartChromeDriver()
方法来正确处理启动ChromeDriver的问题。下面是一个例子:
public IWebDriver StartChromeDriver()
{
var options = new ChromeOptions();
options.AddArgument("--disable-extensions");
options.AddArguments("disable-infobars");
options.AddArgument("--no-sandbox")
driver = new ChromeDriver(options);
return driver;
}
然后用driver=StartChromeDriver()
替换[SetUp]
方法中的driver=new ChromeDriver
调用。
问题可能是在初始化ChromeDriver实例时没有提供任何ChromeOptions()
另外,根据另一位用户的建议,我将编写一个简单的测试,将问题从Selenium和NUnit中分离出来。您可以这样做:
public class Tests
{
// comment out setup method so this Selenium code does not get run.
// IWebDriver driver;
// [SetUp]
// public void Setup()
// {
// driver = new //ChromeDriver("C:/Users/MY_USER/source/repos/NUnitTestProject1/NUnitTestProject1/bin/Debug/netcoreapp2.1/");
// }
[Test]
public void Test1()
{
Assert.Pass("Passed first test successfully.");
}
}
如果您的测试在没有Selenium/ChromeDriver代码的情况下成功运行,那么您就知道问题出在Selenium而不是NUnit上。这是说您的路径中有非法字符,可能需要
新的ChromeDriver(@“…
并使用反斜杠而不是正斜杠。您的ChromeDriver路径指的是NuniteSproject1,您的命令行指的是NuniteSproject2。您是否删除了NuniteSproject1并重新开始或类似的操作?我也会将斜杠替换为反斜杠。没有任何更改。driver=new ChromeDriver(@“C:\Users\MY\u USER\source\repos\nunitestproject1\nunitestproject1\bin\Debug\netcoreapp2.1\”);
。我尝试了\并\\编辑:我把chromedrive.exe放在哪里并不重要。我一直都有相同的错误。另一个选择可能是将NUnit升级到最新版本。路径中的非法字符问题似乎会影响您正在使用的版本,并且在3.11中得到了修复。另外,可能值得将此问题完全分开om selenium。您可以运行对selenium没有依赖性的测试吗?我将NUnit更新到3.12.0版本,但问题仍然存在。没有selenium依赖性,我无法运行测试。此外,当我从new ChromeDriver()中删除路径时,问题是相同的,这表示您的路径中有非法字符,可能只需要new ChromeDriver(@)..
并使用反斜杠而不是正斜杠。您的ChromeDriver路径指的是NuniteSproject1,您的命令行指的是NuniteSproject2。您是否删除了NuniteSproject1并重新开始或类似的操作?我也会将斜杠替换为反斜杠。没有任何更改。driver=new ChromeDriver(@“C:\Users\MY\u USER\source\repos\nunitestproject1\nunitestproject1\bin\Debug\netcoreapp2.1\”);
。我尝试了\并\\编辑:我把chromedrive.exe放在哪里并不重要。我一直都有相同的错误。另一个选择可能是将NUnit升级到最新版本。路径中的非法字符问题似乎会影响您正在使用的版本,并且在3.11中得到了修复。另外,可能值得将此问题完全分开om selenium。您可以运行对selenium没有依赖关系的测试吗?我将NUnit更新到3.12.0版本,但问题仍然存在。没有selenium依赖关系,我无法运行测试。此外,当我从新的ChromeDriver()中删除路径时,问题也是一样的