Как использовать Excel DataSource на TestFixture / TestClass C # Selenium Unit Test - PullRequest
0 голосов
/ 05 июля 2019

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

Я сделал все свои тесты как;
1 TestFixture
Тесты для каждой страницы, которая находится в контрольном примере.

Как это;

[TestFixture]
public class Test : BaseClassForTheTest
{
    [Test, Order(1)]
    TestcodeForHomePage

    [Test,Order(2)]
    testcodeForNextPage

}

Так что мне нужно запустить полный тест для многих данных из файла Excel. Я использую NUnit, как вы могли заметить.
На самом деле вопрос в том, как я могу передать DataTable в TestFixture и запустить тестовые блоки для таблицы данных.

В процессе выполнения первый тестовый блок будет запущен для первой строки в таблица данных с именем MyTable и второй тестовый блок будут выполняться для первой строки таблицы данных с именем SecondTable. Поскольку эти тесты запускаются предыдущим тестовым блоком, я не могу передать источник данных в тестовые блоки.

Я посмотрел в Интернете, но ничего не нашел о передаче Datatable в TestFixture. Заранее спасибо людям:)

1 Ответ

0 голосов
/ 05 июля 2019

Нет ничего встроенного в NUnit для чтения файла Excel. Но вы можете использовать TestCaseSource или TestFixtureSource для генерации данных из любого места.

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

Вот схема с использованием TestCaseSource ...

[TestFixtureSource("DataFromExcel")]
public class MyTestFixture : BaseClassForTheTest
{
    IEnumerable<TestCaseData> DataFromExcel()
    {
        // Read the Excel file
        // For each row of data you want to use
        //     yield return new TestCaseData(/*test fixture args here*/);
    }

    public MyTestFixture(/* your arg list */)
    {
        // Save each arg in a private member
    }

    [Test, Order(1)]
    TestcodeForHomePage()
    {
        // Code that uses the saved values from the constructor
    }

    [Test,Order(2)]
    TestcodeForNextPage()
    {
        // Code that uses the saved values from the constructor
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...