TestFixture kullanarak rahibe ile çapraz tarayıcı testi uygularken, birlikte çalıştığımda testler başarısız oluyor, tek tek çalıştırıldığında iletiliyor. SendKeys yöntemi çağrıldığında istisna atandı çünkü argüman null, fakat bu bir sebep değil çünkü bu testi tekrar yaptığımda test geçecek. Tabii ki bu sorunu ayıklamaya çalıştım ama çözüm bulamıyorum. Basit OpenHomePage Testi iyi çalışıyor. İşte benim kodudur:Birlikte çalıştırıldığında test başarısız, tek tek çalıştırıldığında iletildi
[TestFixture(typeof(ChromeDriver))]
[TestFixture(typeof(FirefoxDriver))]
public class TestClass<TWebDriver> where TWebDriver : IWebDriver, new()
{
[OneTimeSetUp]
public void CreateDriver()
{
try
{
PropertiesCollection.driver = new TWebDriver();
Console.WriteLine("Opened browser");
PropertiesCollection.driver.Url = "http://localhost:81/";
Console.WriteLine("Opened URL");
PropertiesCollection.driver.Manage().Window.Maximize();
//initialize test data from excel sheet
ExcelLib.PopulateInCollection(@"c:\users\bolec\documents\visual studio 2015\Projects\RowingSectionTests\RowingSectionTests\TestData.xlsx");
}
catch (Exception msg)
{
Console.WriteLine(msg.ToString());
}
}
[OneTimeTearDown]
public void FixtureTearDown()
{
HomePageObjects homeObj = new HomePageObjects();
homeObj.Logoff();
if (PropertiesCollection.driver != null) PropertiesCollection.driver.Quit();
}
[TearDown]
public void TearDown()
{
//Take screen on failure
if (TestContext.CurrentContext.Result.Outcome.Status.Equals(TestStatus.Failed))
{
string fileName = Regex.Replace(TestContext.CurrentContext.Test.FullName + "_" + DateTime.Now.ToString(), "[^a-z0-9\\-_]+", "_", RegexOptions.IgnoreCase);
((ITakesScreenshot)PropertiesCollection.driver).GetScreenshot().SaveAsFile(@"c:\users\bolec\documents\visual studio 2015\Projects\RowingSectionTests\RowingSectionTests\Screenshots\" + fileName + ".png", System.Drawing.Imaging.ImageFormat.Png);
}
}
//will always passed
[Test]
public void OpenHomePage()
{
HomePageObjects homeObj = new HomePageObjects();
}
//login with correct credentials will login to acc
[Test]
public void Login()
{
HomePageObjects homeObj = new HomePageObjects();
LoginPageObjects loginObj = homeObj.ToLoginPage();
loginObj.Login(ExcelLib.ReadData(1, "UserName"), ExcelLib.ReadData(1, "Password"));
//checking is URL correct after loggin
Assert.AreEqual("http://localhost:81/", PropertiesCollection.driver.Url.ToString());
//checking is login is correct on navbar
Assert.AreEqual(homeObj.GetUserLoginStringInButton().ToLower(), ExcelLib.ReadData(1, "UserName").ToLower());
}
Nope. NUnit V3'ü kullandığından (aksi halde derleme yapmaz) OneTimeSetUp ve OneTimeTearDown doğrudur. TestFixtureXxxxxXx öznitelikleri V3'te kullanımdan kaldırılmıştır, ancak aynı şeyi yapar. – Charlie
Paralel yürütmeyi etkinleştirdiniz mi? Eğer öyleyse, iki armatür birbiriyle çakışıyor olabilir. – Charlie
ÖzelliklerCollection.driver bir statik midir? Eğer öyleyse, aynı verileri kullanarak iki farklı fikstür var. Kesinlikle paralel çalışmayacak. Paralel değilse, her test kendi kendini temizlemelidir. – Charlie