artbear / 1testrunner

7 stars 11 forks source link
junit-xml oscript

Статус Порога Качества Покрытие Строки кода GitHub release Build Status Build status Build Status

Организовано приемочное тестирование, аналогичное тестированию 1C в проекте xUnitFor1C

Основные принципы работы с тестами для скриптов OneScript описаны в официальной документации OneScript

Использование тестирования (выдержка из документации OneScript)

Пример запуска всех приемочных тестов

Проверить все файлы текущего каталога из командной строки (с паузой, если есть упавшие тесты):

cmd /c C:\Projects\1script\tests\start-all.cmd .

Проверить все файлы текущего каталога из командной строки (без паузы, если есть упавшие тесты):

1testrunner -runall "ТекущийКаталог" xddReportPath "ТекущийКаталог"

или

cmd /c C:\Projects\1script\tests\start-all.cmd . notpause

Запуск тестов

Формат командной строки

1testrunner [-command] testfile|testdir [test-id|test-number] [-option [optionData]]

или

oscript <каталог 1testrunner>/src/main.os [-command] testfile|testdir [test-id|test-number] [-option [optionData]]

Виды команд

Виды режимов

Примеры

Формат скриптов-тестов (предопределенные методы)

Тесты находятся в каталоге tests

Пример скрипта-теста находится в tests\example-test.os :

#Использовать asserts

Перем юТест;

// основной метод для тестирования
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт

    юТест = ЮнитТестирование;

    ВсеТесты = Новый Массив;
    ВсеТесты.Добавить("ТестДолжен_ПроверитьВерсию");

    Возврат ВсеТесты;
КонецФункции

// вызывается 1 раз перед выполнением всех тестов в файле
// для инициализации окружения, общего для всех тестов
//
Процедура ПередЗапускомТестов() Экспорт

КонецПроцедуры

// вызывается перед выполнением каждого тестового метода
// для выполнения общих действий перед каждым тестом
//
Процедура ПередЗапускомТеста() Экспорт

КонецПроцедуры

// вызывается после выполнения каждого тестового метода
// для выполнения общих действий после каждого теста
//
Процедура ПослеЗапускаТеста() Экспорт

КонецПроцедуры

// вызывается 1 раз после выполнения всех тестов в файле
// для выполнения общих действий после всех тестов, например, освобождения ресурсов
//
Процедура ПослеЗапускаТестов() Экспорт

КонецПроцедуры

Процедура ТестДолжен_ПроверитьВерсию() Экспорт
    Утверждения.ПроверитьРавенство("0.1", Версия());
КонецПроцедуры

Функция Версия() Экспорт
    Возврат "0.1";
КонецФункции

Формат скриптов-тестов (аннотированные методы)

Для удобства написания тестов возможно использование анотаций методов в файле тестов:

См. пример.

#Использовать asserts

Перем юТест;

// вызывается 1 раз перед выполнением всех тестов в файле
// для инициализации окружения, общего для всех тестов
// возможно последовательное выполнение нескольких методов с аннотацией &Инициализация
//
&Инициализация
Процедура ПередЗапускомТестов() Экспорт

    юТест = ЮнитТестирование;

КонецПроцедуры

// вызывается перед выполнением каждого тестового метода
// для выполнения общих действий перед каждым тестом
// возможно последовательное выполнение нескольких методов с аннотацией &Перед
//
&Перед
Процедура ПередЗапускомТеста() Экспорт

КонецПроцедуры

// вызывается после выполнения каждого тестового метода
// для выполнения общих действий после каждого теста
// возможно последовательное выполнение нескольких методов с аннотацией &После
//
&После
Процедура ПослеЗапускаТеста() Экспорт

КонецПроцедуры

// вызывается 1 раз после выполнения всех тестов в файле
// для выполнения общих действий после всех тестов, например, освобождения ресурсов
// возможно последовательное выполнение нескольких методов с аннотацией &Завершение
//
&Завершение
Процедура ПослеЗапускаТестов() Экспорт

КонецПроцедуры

&Тест
Процедура ТестДолжен_ПроверитьВерсию() Экспорт
    Утверждения.ПроверитьРавенство("0.1", Версия());
КонецПроцедуры

// возможна передача параметров теста через аннотацию &Параметры
// тест будет вызван для каждого набора параметров
//
&Тест
&Параметры(1, 2, Ложь)
&Параметры(1, 1, Истина)
Процедура ТестДолжен_ВыполнитьсяСПараметрами(ПервоеЗначение, ВтороеЗначение, Ожидание) Экспорт
    Результат = (ПервоеЗначение = ВтороеЗначение);
    Утверждения.ПроверитьРавенство(Ожидание, Результат);
КонецПроцедуры

Функция Версия() Экспорт
    Возврат "0.1";
КонецФункции

Механизм работы с временными файлами

В 1testrunner встроен механизм работы с временными файлами. Удобен для автосоздания и автоудаления файлов после выполнения тестов. Вызывать через юТест.

Методы:

Пример использования методов находятся в тесте temp-files.os

Запуск тестирования из Notepad++

Для прогона тестов из текущего открытого файла скрипта

в Notepad++ (в т.ч. и для плагина NppExec) можно использовать следующую команду:

cmd.exe /c C:\Projects\1script\tests\start.cmd "$(FULL_CURRENT_PATH)"

или

1testrunner -run "$(FULL_CURRENT_PATH)"

В случае ошибок в тестах/файле будет выдано окно консоли с описанием ошибки.

Для запуска всех приемочных тестов в текущем каталоге

1testrunner -runall "$(CURRENT_DIRECTORY)"