This repository has been archived by the owner on Mar 12, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 46
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Выделение 1testrunner в отдельную библиотеку #31
Исправил вывод неверной кодировки при прогоне тестов в Jenkins #31
- Loading branch information
Showing
6 changed files
with
201 additions
and
74 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
|
||
Программа = ОбъединитьПути(КаталогПрограммы(), "oscript.exe"); | ||
ЮнитТестер = ОбъединитьПути(ТекущийСценарий().Каталог, "testrunner.os"); | ||
Библиотека = ОбъединитьПути(ТекущийСценарий().Каталог, "..\src"); | ||
|
||
СодержимоеБиблиотеки = НайтиФайлы(Библиотека, ПолучитьМаскуВсеФайлы()); | ||
|
||
Для Каждого ФайлБиблиотеки Из СодержимоеБиблиотеки Цикл | ||
|
||
Если ФайлБиблиотеки.ЭтоКаталог() Тогда | ||
Сообщить("Вход в каталог пакета " + ФайлБиблиотеки.Имя); | ||
|
||
КаталогТестов = Новый Файл(ОбъединитьПути(ФайлБиблиотеки.ПолноеИмя, "tests")); | ||
Если КаталогТестов.Существует() и КаталогТестов.ЭтоКаталог() Тогда | ||
Сообщить("Каталог тестов найден"); | ||
|
||
СтрокаЗапуска = """" + Программа + """ """ + ЮнитТестер + """ -runall """ + КаталогТестов.ПолноеИмя + """ xddReportPath ."; | ||
Сообщить("Запускаю: " + СтрокаЗапуска); | ||
|
||
Процесс = СоздатьПроцесс(СтрокаЗапуска, КаталогТестов.ПолноеИмя, Истина); | ||
Процесс.Запустить(); | ||
Пока Не Процесс.Завершен Цикл | ||
Сообщить(Процесс.ПотокВывода.ПрочитатьСтроку()); | ||
КонецЦикла; | ||
|
||
Сообщить(Процесс.ПотокВывода.Прочитать()); | ||
|
||
Сообщить("Тестирование закончено"); | ||
|
||
КонецЕсли; | ||
|
||
КонецЕсли; | ||
|
||
КонецЦикла; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
Организовано приемочное тестирование, аналогичное тестированию 1C в проекте [xUnitFor1C](https://github.com/xDrivenDevelopment/xUnitFor1C/wiki) | ||
|
||
Основные принципы работы с тестами для скриптов OneScript описаны в [официальной документации OneScript](http://oscript.io/docs/page/testing) | ||
|
||
# Запуск всех тестов проекта oscript-library | ||
|
||
oscript finder.os | ||
|
||
Для запуска тестов используется скрипт `testrunner.os`. | ||
|
||
Скрипт выполняет последовательный прогон тестов, переданных в командной строке. | ||
|
||
Скрипт `finder.os` выполняет поиск тестов проекта и последовательно прогоняет тесты для каждого найденного файла, запуская `testrunner.os` | ||
|
||
# Использование тестирования (выдержка из документации OneScript) | ||
|
||
## Пример запуска всех приемочных тестов ### | ||
|
||
Проверить все файлы текущего каталога из командной строки (с паузой, если есть упавшие тесты): | ||
|
||
cmd /c C:\Projects\1script\tests\start-all.cmd . | ||
|
||
Проверить все файлы текущего каталога из командной строки (без паузы, если есть упавшие тесты): | ||
|
||
"C:\Program Files (x86)\OneScript\oscript.exe" "ПутьStart\testrunner.os" -runall "ТекущийКаталог" xddReportPath "ТекущийКаталог" | ||
|
||
или | ||
|
||
cmd /c C:\Projects\1script\tests\start-all.cmd . notpause | ||
|
||
## Запуск тестов ### | ||
|
||
### Формат командной строки: | ||
|
||
oscript tests\testrunner.os [-command] testfile|testdir [test-id|test-number] [-option [optionData]] | ||
|
||
|
||
### Виды команд | ||
|
||
* `-show` - вывод доступных тестов с именами тестов и номерами тестов по порядку объявления | ||
* `-run` - прогон всех тестов из файла теста или одного конкретного теста, уточненного по номеру или наименованию | ||
* `-runall` - прогон всех тестов из каталога, в т.ч. и из вложенных каталогов | ||
|
||
### Виды режимов | ||
|
||
* `xddReportPath` - формировать отчет тестирования в формате junit-xml | ||
* * [optionData] - полный или относительный путь к каталогу, где формировать файл *.xml | ||
|
||
### Примеры: | ||
|
||
* `oscript tests\testrunner.os -show testfile` - вывод списка тестов | ||
* `oscript tests\testrunner.os testfile` или `oscript tests\testrunner.os -run testfile` - запуск всех тестов из файла | ||
* `oscript tests\testrunner.os -run testfile 5` или `oscript tests\testrunner.os testfile 5` - запуск теста №5 | ||
* `oscript tests\testrunner.os -run testfile "Тест1"` или `oscript tests\testrunner.os testfile "Тест1"`- запуск теста с именем Тест1 | ||
|
||
* `oscript tests\testrunner.os -runall tests` - запуск всех тестов из каталога tests | ||
* `oscript tests\testrunner.os -runall tests xddReportPath .` - запуск всех тестов из каталога tests и формирование отчета тестирования в формате junit-xml | ||
|
||
### Формат скриптов-тестов | ||
|
||
Тесты находятся в каталоге `tests` | ||
|
||
Пример скрипта-теста находится в `tests\example-test.os` : | ||
|
||
``` | ||
Перем юТест; | ||
// основной метод для тестирования | ||
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт | ||
юТест = ЮнитТестирование; | ||
ВсеТесты = Новый Массив; | ||
ВсеТесты.Добавить("ТестДолжен_ПроверитьВерсию"); | ||
Возврат ВсеТесты; | ||
КонецФункции | ||
Процедура ТестДолжен_ПроверитьВерсию() Экспорт | ||
юТест.ПроверитьРавенство("0.1", Версия()); | ||
КонецПроцедуры | ||
Функция Версия() Экспорт | ||
Возврат "0.1"; | ||
КонецФункции | ||
``` | ||
|
||
### Механизм работы с временными файлами | ||
|
||
В testrunner.os встроен механизм работы с временными файлами. | ||
Удобен для автосоздания и автоудаления файлов после выполнения тестов. | ||
Вызывать через юТест. | ||
|
||
Методы: | ||
|
||
* **ИмяВременногоФайла**() - возвращается имя временного файла и имя фиксируется для дальнейшего удаления | ||
* **УдалитьВременныеФайлы**() - удаляются все зарегистрированные ранее временные файлы | ||
* * Удобно этот метод использовать в 'ПослеЗапускаТеста' | ||
|
||
Пример использования методов находятся в тесте temp-files.os | ||
|
||
## Запуск тестирования из Notepad++ | ||
|
||
### Для прогона тестов из текущего открытого файла скрипта | ||
|
||
в Notepad++ (в т.ч. и для плагина NppExec) можно использовать следующую команду: | ||
|
||
cmd.exe /c C:\Projects\1script\tests\start.cmd "$(FULL_CURRENT_PATH)" | ||
|
||
или | ||
|
||
"C:\Program Files (x86)\OneScript\oscript.exe" "$(CURRENT_DIRECTORY)\testrunner.os" -run "$(FULL_CURRENT_PATH)" | ||
|
||
В случае ошибок в тестах/файле будет выдано окно консоли с описанием ошибки. | ||
|
||
### Пример запуска всех приемочных тестов ### | ||
|
||
"C:\Program Files (x86)\OneScript\oscript.exe" "$(CURRENT_DIRECTORY)\testrunner.os" -runall "$(CURRENT_DIRECTORY)" |
Oops, something went wrong.