我是C#和Selenium的新手,我已经编写了许多脚本,但是当我使用多个方法或一个以上类的单个方法并且单个类始终运行良好时,就会出现问题。
我已经尝试了Internet上所有可能的解决方案,并且尝试了一个新项目,并复制了除类名,方法名和名称空间之外的主要代码,并将其粘贴到新项目中,这是我的最佳尝试。相同的问题,但我想知道真正的问题是什么。
These are the Four Classes:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SignUpPageAssignment
{
public class SignUpDetails
{
public static string registerPageReDirect = "login_register";
public static string signUpUserNameID = "username";
public static string signUpPasswordID = "password";
public static string confirmPasswordID = "re_password";
public static string fullNameID = "full_name";
public static string signUpEmailID = "email_add";
public static string signUpUserName = "TouqeerABCDEFGHI";
public static string signUpPassword = "Password@123";
public static string confirmPassword = "Password@123";
public static string fullName = "Touqeer Saleem";
public static string email = "sabaloch67@gmail.com";
public static string checkBox = "tnc_box";
public static string captchaForm = "captcha-form";
public static string signUpButton = "Submit";
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SignUpPageAssignment
{
public class LoginDetails
{
public static string loginUserNameID = "username";
public static string loginPasswordID = "password";
public static string loginUserName = SignUpDetails.signUpUserName;
public static string loginPassword = SignUpDetails.signUpPassword;
public static string loginButton = "login";
public static string redirectToLogin = "Click here to login";
}
}
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace SignUpPageAssignment
{
class Automation
{
public void TestMethod1()
{
IWebDriver driver = new ChromeDriver();
driver.Url = "http://adactin.com/HotelApp/";
// SIGN UP START
driver.FindElement(By.ClassName(SignUpDetails.registerPageReDirect)).Click();
driver.FindElement(By.Id(SignUpDetails.signUpUserNameID)).SendKeys(SignUpDetails.signUpUserName);
driver.FindElement(By.Id(SignUpDetails.signUpPasswordID)).SendKeys(SignUpDetails.signUpPassword);
driver.FindElement(By.Id(SignUpDetails.confirmPasswordID)).SendKeys(SignUpDetails.confirmPassword);
driver.FindElement(By.Id(SignUpDetails.fullNameID)).SendKeys(SignUpDetails.fullName);
driver.FindElement(By.Id(SignUpDetails.signUpEmailID)).SendKeys(SignUpDetails.email);
driver.FindElement(By.Id(SignUpDetails.checkBox)).Click();
driver.FindElement(By.Id(SignUpDetails.captchaForm)).SendKeys("");
Thread.Sleep(5000);
driver.FindElement(By.Id(SignUpDetails.signUpButton)).Click();
//SIGN UP END
//LOGIN IN START
driver.FindElement(By.LinkText(LoginDetails.redirectToLogin)).Click();
driver.FindElement(By.Id(LoginDetails.loginUserNameID)).SendKeys(LoginDetails.loginUserName);
driver.FindElement(By.Id(LoginDetails.loginPasswordID)).SendKeys(LoginDetails.loginPassword);
driver.FindElement(By.Id(LoginDetails.loginButton)).Click();
//LOGIN IN STOP
//IWebElement result = driver.FindElement(By.ClassName("reg_success"));
//Assert.Equals("reg_success", result);
}
}
}
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace SignUpPageAssignment
{
[TestClass]
public class UnitTest1
{
public static void Main(String[] args)
{
Automation automation = new Automation();
automation.TestMethod1();
}
}
}
我正在制作一个注册的自动化脚本,并在注册后登录
显示的错误是:
[12/28/2018 10:44:11 PM Informational] Executing test method 'SignUpPageAssignment.UnitTest1.Main'
[12/28/2018 10:44:11 PM Informational] Executing test method 'SignUpPageAssignment.UnitTest1.Main'
[12/28/2018 10:44:11 PM Informational] ------ Run test started ------
[12/28/2018 10:44:14 PM Warning] No test matches the given testcase filter `FullyQualifiedName=SignUpPageAssignment.UnitTest1.Main` in C:\Users\touqeer\source\repos\SignUpPageAssignment\SignUpPageAssignment\bin\Debug\SignUpPageAssignment.dll
[12/28/2018 10:44:14 PM Informational] ========== Run test finished: 0 run (0:00:03.6212841) ==========
答案 0 :(得分:7)
通过运行下一个软件包的最新版本的更新,已解决“没有任何测试与给定的测试用例过滤器FullyQualifiedName相匹配” 的问题:
Microsoft.NET.Test.Sdk
MSTest.TestAdapter
MSTest.TestFramework
答案 1 :(得分:4)
您没有使用Main
方法来运行测试。
相反,在要作为测试运行的方法上放置一个[TestMethod]
批注。测试运行器将负责创建测试类的实例并调用这些方法。
带有[TestMethod]
批注的方法必须是public
和void
,不能是static
,并且不能接受任何参数。即使将[TestMethod]
放在Main
方法上,测试也可能无法运行。
这是您的UnitTest1
类的样子:
namespace SignUpPageAssignment
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
Automation automation = new Automation();
automation.TestMethod1();
}
}
}
答案 2 :(得分:4)
我的情况是-在新的 VS2019 中打开 NUnit 2.5 的旧项目也会出现相同的错误。
由于NUnit 2.x默认不包含在VS2019中-您需要安装它。
转到菜单->扩展-> ManageExtensions
然后搜索“ NUnit 2测试适配器”
然后安装它。
那帮助了我。
答案 3 :(得分:3)
对于 XUnit,我可以通过添加“xunit.runner.visualstudio”nuget 包来解决它。
答案 4 :(得分:3)
在 Visual Studio 2019 (v16.6.2) 中,这些解决方案都不适合我
在“文本资源管理器”中,我可以看到我的测试,但是当我右键单击它时,选择“运行”或“调试”,但它会安静地死掉。
在幕后,它倒下了
No test is available in C:\MikesApp\bin\Debug\netcoreapp3.1\MikesApp.Tests.dll.
Make sure that test discoverer & executors are registered and platform &
framework version settings are appropriate and try again.
奇怪的是,如果我安装 Resharper,并从“单元测试会话”窗口运行它,它会立即运行 (?!!)
为什么我们在 2021 年仍然有这个问题(没有显示明确的错误消息)?!!!
答案 5 :(得分:1)
包括var doc = XDocument.Load(file);
var list = new System.Collections.Generic.List<DtoHeader>();
foreach (var n in doc.Descendants().First(node => node.Name.LocalName == "Results").Elements().Where(e => e.Name.LocalName == "UnitTestResult"))
{
list.Add(new DtoHeader
{
outcome = n.Attribute("outcome").Value,
testName = n.Attribute("testName").Value,
});
}
的nuget包对我来说都破坏了xunit和nunit测试,在Visual Studio 2017的输出中给了我这个警告
没有测试与给定的测试用例过滤器完全匹配D:\ Desktop \ Code Projects \ Product \ App \ Reporting UI \ bin \ x64 \ Debug \ Report Generator.exe中的FullyQualifiedName = Company.Product.Project.UnitTests.TestTestTest
在Visual Studio 2019 16.3.0预览版中,我什至没有在输出窗口中得到它。
在删除costura之后,我的单元测试再次运行。
答案 6 :(得分:1)
我有同样的错误。对我来说,原因是缺少包裹:
NUnit.Engine
NUnit3TestAdapter
答案 7 :(得分:1)
我能够通过changing the Default Processor Architecture in Visual Studio 2017解决相同的错误消息。我必须去测试->测试设置->默认处理器体系结构-> x64。看来我的测试项目的设置与平台目标不匹配。
答案 8 :(得分:1)
对于 Visual Studio 2017,在安装“NUnit3TestAdapter”NuGet 包后修复了上述错误。
packages.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.CodeCoverage" version="16.8.0" targetFramework="net461" />
<package id="Microsoft.NET.Test.Sdk" version="16.8.0" targetFramework="net461" />
<package id="NUnit" version="3.12.0" targetFramework="net461" />
<package id="NUnit3TestAdapter" version="3.13.0" targetFramework="net461" />
<package id="Selenium.Support" version="3.141.0" targetFramework="net461" />
<package id="Selenium.WebDriver" version="3.141.0" targetFramework="net461" />
<package id="Selenium.WebDriver.ChromeDriver" version="89.0.4389.2300" targetFramework="net461" />
</packages>
答案 9 :(得分:0)
我有一个稍微不同的问题-在我的项目中,我需要一种特殊的配置来运行单元测试,因为我使用ILMerge并在库类的版本之间发生冲突,因为直接引用了一个而ILMerged了一个进入我正在测试的代码中(据我所知,“内部化”应该可以防止这种情况发生,但事实并非如此)。
就我而言,尝试在“调试”配置下运行测试时遇到此错误。切换到我的自定义测试配置,现在很好。其他人可能会遇到类似的问题,他们需要处于“调试”模式,但在VS中将其设置为发布配置。
答案 10 :(得分:0)
我的是System.Runtime软件包的问题。由于某种原因,它已降级到较旧的版本。我撤消了此版本更改,现在测试运行程序运行正常。
<package id="System.Runtime" version="4.3.1" targetFramework="net462" />
答案 11 :(得分:0)
我通过添加nuget包进行了修复:
e