2016-01-20 3 views
0

Selenium Webdriver 2.48, C#, NUnit 2.6.4, драйвер Chrome Когда я запускаю свои тесты из тестового бегуна NUnit, все они проходят, если запускаются индивидуально.NUnit не будет запускать последовательные тесты Selenium Webdriver C#

Если я выбираю узел основного заголовка и выбираю «Запуск», первый тест в группе будет запущен, остальные будут терпеть неудачу.

Если у меня есть тестовый прибор [Teardown] закрыть драйвер в конце каждого теста, не возникает следующая ошибка: «Недопустимая операция Исключение: Нет такой сессии»

Если у меня есть тестовый прибор [Teardown ] выйти из драйвера, возникает следующая ошибка: «Неожиданная ошибка. System.Net.WebException: невозможно подключиться к удаленному серверу ---> System.Net.Sockets.SocketException: соединение не может быть выполнено, поскольку целевая машина активно отказался от него 127.0.0.1:13806 в System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddress socketAddress) в System.Net.ServicePoint.ConnectSocketInternal (логический connectFailure, Socket s4, розетка s6, гнездо & розетки, IP-адрес & адрес, ConnectSocketState состояние, IAsyncResult AsyncResult, исключение & исключения)»

Используя либо driver.Quit() или driver.Close() не имеет никакого значения для результата - только первый тест в группе.

Я искал, но не смог найти решение. Должно быть возможным запустить все тесты, выполнив работу с самого верхнего узла, вместо того, чтобы выбирать каждый тест и запускать их по отдельности. Любая помощь будет оценена по достоинству. Благодарю. Michael

Вот пример, который имеет два теста в одном классе. Я удалил большинство методов из тестов, поскольку они очень длинные.

using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using OpenQA.Selenium.Chrome; 
using OpenQA.Selenium; 
using NUnit.Framework; 
using SiteCore.HousingRepairsLogic; 

namespace SiteCore.HousingRepairsTests.DoorsAndWindowsTests 
{ 
[TestFixture] 
class DoorsTests 
{ 
    private IWebDriver driver = new  ChromeDriver(@"C:\chromedriver_win32"); 

    [SetUp] 
    public void setup() 
    { 
     HousingRepairsLogic.Utilities utilities = new Utilities(driver); 
     utilities.NavigateToLogin(); 
    } 

    [TearDown] 

    public void teardown() 
    { 
     Utilities utilities = new Utilities(driver); 
     utilities.CloseDriver(); 
    } 


    [Test] 

    public void LockRepair() 
    { 

     //Create Instance of the HomePage class 
     HomePage homepage = new HomePage(driver); 

     homepage.ClickHousingButton(); 
     homepage.RequestRepairButton(); 
     homepage.RequestRepairNowButton(); 
} 
    [Test] 

    public void ExternalWoodDoorFrameDamaged() 
    { 


     //Create Instance of the HomePage class 
     HomePage homepage = new HomePage(driver); 

     homepage.ClickHousingButton(); 
     homepage.RequestRepairButton(); 
     homepage.RequestRepairNowButton(); 

     //Create instance of TenancyPage class 

     TenancyPage tenancy = new TenancyPage(driver); 
     //proceed with login 
     tenancy.ClickYesLoginButton(); 
     //enter username 
     tenancy.EnterMyeAccountUserName(); 
     //enter password 
     tenancy.EnterMyeAccountPassword(); 
     //click the login button 
     tenancy.ClickLoginButton(); 
} 
    } 
+0

Не могли бы вы добавить код? Класс с настройкой, разрывом и методами тестирования – unickq

+0

Благодарим за отзыв. Я редактировал свое оригинальное сообщение и добавил код. –

ответ

0

инициализации драйвера один раз в креплении, когда он заявил:

частный водитель IWebDriver = новый ChromeDriver (@ "C: \ chromedriver_win32");

Тогда ваш первый тестовый прогон, использует драйвер и разрывает его. Следующий тест больше не использует драйвер. Вам необходимо либо: повторно инициализировать драйвер в настройке, либо закрыть его в режиме срыва устройства.

Если вы решили инициализировать и закрыть в настройке/разрыве, вы увидите, что драйвер запускает новую браузеру для каждого теста. Это позволит убедиться, что ваши тесты независимы друг от друга, но это будет стоить намного быстрее.

Если вы хотите повторно использовать браузер для всех тестов: переместите инициализацию и закрытие на TestFixture Setup и TestSOxture Teardown.

+0

Спасибо, Стив. Теперь проблема решена. Я инициализирую драйвер в каждом тесте и закрою драйвер в конце теста. –

Смежные вопросы