私はC#とSeleniumを初めて使用し、多くのスクリプトを作成しましたが、複数のメソッドまたは複数のクラスの単一メソッドを作成し、単一クラスが常に正常に実行されると問題が発生します。
私はインターネットで可能なすべての解決策を試しましたが、自分で試した解決策では、新しいプロジェクトを作成し、クラス名、メソッド名、名前空間以外のメインコードをコピーして新しいプロジェクトに貼り付けましたが、これは同じ問題でうまくいきましたが、何が問題なのか知りたい。
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 = "[email protected]";
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) ==========
"次のパッケージの最新バージョンへの更新を実行することにより、指定されたテストケースフィルターFullyQualifiedNameに一致するテストはありません"の問題を解決しました:
Microsoft.NET.Test.Sdk
MSTest.TestAdapter
MSTest.TestFramework
私は少し異なる問題を抱えていました-私のプロジェクトでは、ユニットテストを実行するために特別な構成が必要です.ILMergeを使用していて、ライブラリクラスのバージョン間で競合が発生していて、1つが直接参照され、もう1つがコードにILMergedされていましたテスト中(私の知る限り、「内部化」はこれを防止するはずですが、防止しません)。
私の場合、「デバッグ」構成でテストを実行しようとすると、このエラーが発生しました。カスタムテスト構成に切り替えたところ、問題はありません。 「デバッグ」モードにする必要があるが、VSでリリース構成になるように設定されている他の人々にも同様の問題があるかもしれません。