Я пишу автоматический тест в .NET, и у меня есть небольшая проблема с [SetUp] — он не идет до [Test], а браузер Chrome даже не открывает новое окно — я понятия не имею, почему.
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System.Net;
using System.Threading;
using Tests.Settings;
namespace Tests.TestCaseScenario
{
public class BaseTestCaseTemplate
{
protected string password;
protected string userName;
protected string websideURL;
public IWebDriver Driver = new ChromeDriver();
//load before each test
[SetUp]
public void SetUp()
{
//load userconfig.json
var UserConfigReader = new UserConfigReader();
var CurrentUserConfig = UserConfigReader.LoadJsonConfigToObj(UserConfigPath);
password = CurrentUserConfig.Password;
userName = CurrentUserConfig.UserName;
websideURL = CurrentUserConfig.WebsiteURL;
Driver.Navigate().GoToUrl(websideURL);
Driver.Manage().Window.Maximize();
}
}
}
А вот и мой тестовый класс
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NUnit.Framework;
namespace Tests.TestCaseScenario
{
[TestClass]
public class SimplyChecking : BaseTestCaseTemplate
{
[Test]
public void ApplicationCheckerSimple()
{
HomePage homePage = new HomePage();
homePage.Login(userName, password);
}
}
}
и мой класс страницы:
using OpenQA.Selenium;
using OpenQA.Selenium.Support.PageObjects;
namespace Tests.Pages
{
public class HomePage : BasePageTemplate
{
[FindsBy(How = How.Id, Using = "UserName")]
private IWebElement UserName;
[FindsBy(How = How.Id, Using = "Password")]
private IWebElement Password;
[FindsBy(How = How.ClassName, Using = "btn-primary")]
private IWebElement LoginButton;
public void Login(string user, string password)
{
UserName.SendKeys(user);
Password.SendKeys(password);
LoginButton.Click();
}
}
}
Тест даже не запускается. Он не возвращает никакого значения (пройден или не пройден), но когда я меняю [Test] на [TestMethod], он запускается и дает отрицательный результат.
Я обновил код с помощью пространств имен из Visual Studio.
Почему у вас есть и Microsoft.VisualStudio.TestTools.UnitTesting, и NUnit.Framework? Вероятно, нужно ссылаться только на один из них.
Если вы используете NUnit, тогда класс должен иметь [TestFixture] с методом, имеющим [Test] и атрибуты
Если вы используете Microsoft.VisualStudio.TestTools.UnitTesting его [TestClass] для класса и [TestMethod] для метода тестирования
Я изменил [TestClass] на [TestFixture] и все равно ничего...
и я добавил [TestFixture] в класс BaseTestCaseTemplate - все равно ничего.
Я предполагаю, что вам может понадобиться SetUp в вашем тестовом классе, и из него вызовите base.SetUp, как показано в этом ответе: stackoverflow.com/questions/17659213/…
Какой тестовый бегун вы используете? Идентифицирует ли он классы тестов и методы тестирования?
Решение: stackoverflow.com/questions/51967866/…





Пожалуйста, добавьте пространства имен и убедитесь, что ваши настройки и тесты находятся в одном и том же пространстве имен.