У нас на проектах ми пишемо автоматизовані тести для сайтів використовуючи зв'язку "Selenium WebDriver + C # + NUnit". Зазвичай тести з використанням NUnit пишуть у вигляді бібліотеки. Потім ці тести запускаються з використанням спеціальної утиліти від розробників NUnit. Це ж робили і ми. Однак в один з днів прийшло розуміння, що нам зручніше буде писати тести, які будуть міститися в виконуваному файлі. В результаті вивчивши дане питання я переписав проекти з автоматизованого тестування, тести в яких містяться не в бібліотеці DLL, а в виконуваному файлі.
Звичайно ж "переписав" звучить голосно, на самом деле я витратив багато часу в пошуках рішення, а код потім переніс швидко.
Зараз розповім, як можна писати тести, які після компіляції будуть міститися в консольному додатку. Це зручно, так як не треба через командний рядок запускати тести з DLL використовуючи утиліту від розробників NUnit. Хоча це не зовсім так. Наш EXE буде в собі містити посилання на утиліти NUnit, але про все по порядку.
На поточний момент мною використовується NUnit 3.5.
Для початку створимо в студії, в якій ви працюєте, і не важливо в який, проект "Консольне додаток". Називайте як хочете, розміщуйте де хочете:
Після того як створили проект нам необхідно підключити до проекту "NUnit", "NUnit Test Engine (NUnit.Engine)", "NUnit Console Runner - Deprecated (NUnit.Runners)". Зазвичай ці пакети встановлюються через NuGet. У Visual Studio в менеджері пакетів NuGet вони виглядають так:
Я найчастіше їх скачував і підключаю до проекту руками.
Далі в посилання додамо "nunit3-console.exe". Він зазвичай знаходиться по шляху "ВАШ_ПРОЕКТ \ packages \ NUnit.ConsoleRunner.3.5.0 \ tools \ nunit3-console.exe":
Після цього наповнюємо файл "Program.cs". Я вам наведу готовий код, який можна вставити в "Program.cs" попередньо видаливши все що в ньому є. Не полінуйтеся порівняти те що було з тим, що стало:
Назви «namespace TESTING_SPACE» і «class Test» можете змінювати так як вашій душі завгодно. Можливо "using" в даному коді для вас буде забагато, але це я брав зі свого робочого проекту, в зв'язку з цим явні непотрібні речі видалив і залишив тільки найнеобхідніше. Якщо ви не використовуєте "Selenium WebDriver", то вам можна видалити всі "using", в яких є слово "Selenium".
Всі результати тестів будуть записуватися автоматично в файл "TestResult.xml", який буде створюватися поруч з вашим EXE. Як сформувати свій власний звіт я розповім вам в одній з найближчих статей.
Як перевірити наявність (if ... exist) або видимість елемента без виклику виключення / помилки (Selenium WebDriver, C #)
Посадова інструкція інженера з тестування програмного забезпечення (тестувальника)