Як реалізувати nunit тести у вигляді виконуваного файлу (c #) - замітки victorz

Як реалізувати nunit тести у вигляді виконуваного файлу (c #) - замітки victorz

У нас на проектах ми пишемо автоматизовані тести для сайтів використовуючи зв'язку "Selenium WebDriver + C # + NUnit". Зазвичай тести з використанням NUnit пишуть у вигляді бібліотеки. Потім ці тести запускаються з використанням спеціальної утиліти від розробників NUnit. Це ж робили і ми. Однак в один з днів прийшло розуміння, що нам зручніше буде писати тести, які будуть міститися в виконуваному файлі. В результаті вивчивши дане питання я переписав проекти з автоматизованого тестування, тести в яких містяться не в бібліотеці DLL, а в виконуваному файлі.

Звичайно ж "переписав" звучить голосно, на самом деле я витратив багато часу в пошуках рішення, а код потім переніс швидко.

Зараз розповім, як можна писати тести, які після компіляції будуть міститися в консольному додатку. Це зручно, так як не треба через командний рядок запускати тести з DLL використовуючи утиліту від розробників NUnit. Хоча це не зовсім так. Наш EXE буде в собі містити посилання на утиліти NUnit, але про все по порядку.

На поточний момент мною використовується NUnit 3.5.

Для початку створимо в студії, в якій ви працюєте, і не важливо в який, проект "Консольне додаток". Називайте як хочете, розміщуйте де хочете:

Як реалізувати nunit тести у вигляді виконуваного файлу (c #) - замітки victorz

Після того як створили проект нам необхідно підключити до проекту "NUnit", "NUnit Test Engine (NUnit.Engine)", "NUnit Console Runner - Deprecated (NUnit.Runners)". Зазвичай ці пакети встановлюються через NuGet. У Visual Studio в менеджері пакетів NuGet вони виглядають так:

Як реалізувати nunit тести у вигляді виконуваного файлу (c #) - замітки victorz

Я найчастіше їх скачував і підключаю до проекту руками.

Далі в посилання додамо "nunit3-console.exe". Він зазвичай знаходиться по шляху "ВАШ_ПРОЕКТ \ packages \ NUnit.ConsoleRunner.3.5.0 \ tools \ nunit3-console.exe":

Як реалізувати nunit тести у вигляді виконуваного файлу (c #) - замітки victorz

Після цього наповнюємо файл "Program.cs". Я вам наведу готовий код, який можна вставити в "Program.cs" попередньо видаливши все що в ньому є. Не полінуйтеся порівняти те що було з тим, що стало:

Назви «namespace TESTING_SPACE» і «class Test» можете змінювати так як вашій душі завгодно. Можливо "using" в даному коді для вас буде забагато, але це я брав зі свого робочого проекту, в зв'язку з цим явні непотрібні речі видалив і залишив тільки найнеобхідніше. Якщо ви не використовуєте "Selenium WebDriver", то вам можна видалити всі "using", в яких є слово "Selenium".

Всі результати тестів будуть записуватися автоматично в файл "TestResult.xml", який буде створюватися поруч з вашим EXE. Як сформувати свій власний звіт я розповім вам в одній з найближчих статей.

Як перевірити наявність (if ... exist) або видимість елемента без виклику виключення / помилки (Selenium WebDriver, C #)

Посадова інструкція інженера з тестування програмного забезпечення (тестувальника)