Skip to content
This repository has been archived by the owner on Mar 12, 2021. It is now read-only.

Commit

Permalink
Выделение 1testrunner в отдельную библиотеку #31
Browse files Browse the repository at this point in the history
  • Loading branch information
artbear committed Aug 26, 2016
1 parent 1e328fc commit f68814a
Show file tree
Hide file tree
Showing 6 changed files with 1,004 additions and 109 deletions.
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@
[submodule "src/json"]
path = src/json
url = https://github.com/oscript-library/json.git
[submodule "src/1testrunner"]
path = src/1testrunner
url = https://github.com/oscript-library/1testrunner.git

34 changes: 34 additions & 0 deletions src/1testrunner/finder.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@

Программа = ОбъединитьПути(КаталогПрограммы(), "oscript.exe");
ЮнитТестер = ОбъединитьПути(ТекущийСценарий().Каталог, "testrunner.os");
Библиотека = ОбъединитьПути(ТекущийСценарий().Каталог, "..\src");

СодержимоеБиблиотеки = НайтиФайлы(Библиотека, ПолучитьМаскуВсеФайлы());

Для Каждого ФайлБиблиотеки Из СодержимоеБиблиотеки Цикл

Если ФайлБиблиотеки.ЭтоКаталог() Тогда
Сообщить("Вход в каталог пакета " + ФайлБиблиотеки.Имя);

КаталогТестов = Новый Файл(ОбъединитьПути(ФайлБиблиотеки.ПолноеИмя, "tests"));
Если КаталогТестов.Существует() и КаталогТестов.ЭтоКаталог() Тогда
Сообщить("Каталог тестов найден");

СтрокаЗапуска = """" + Программа + """ """ + ЮнитТестер + """ -runall """ + КаталогТестов.ПолноеИмя + """ xddReportPath .";
Сообщить("Запускаю: " + СтрокаЗапуска);

Процесс = СоздатьПроцесс(СтрокаЗапуска, КаталогТестов.ПолноеИмя, Истина);
Процесс.Запустить();
Пока Не Процесс.Завершен Цикл
Сообщить(Процесс.ПотокВывода.ПрочитатьСтроку());
КонецЦикла;

Сообщить(Процесс.ПотокВывода.Прочитать());

Сообщить("Тестирование закончено");

КонецЕсли;

КонецЕсли;

КонецЦикла;
119 changes: 119 additions & 0 deletions src/1testrunner/readme.md
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)"

0 comments on commit f68814a

Please sign in to comment.