|
1 | | -[](https://sonar.openbsl.ru/dashboard?id=1testrunner) [](https://sonar.openbsl.ru/dashboard?id=1testrunner) [](https://sonar.openbsl.ru/dashboard?id=1testrunner) [](https://github.com/artbear/1testrunner/releases) [](http://build.oscript.io/job/oscript-library/job/1testrunner/job/develop/) [](https://ci.appveyor.com/project/artbear/1testrunner) [](https://travis-ci.org/artbear/1testrunner) |
| 1 | +[](https://sonar.openbsl.ru/dashboard?id=1testrunner) |
| 2 | +[](https://sonar.openbsl.ru/dashboard?id=1testrunner) |
| 3 | +[](https://sonar.openbsl.ru/dashboard?id=1testrunner) |
| 4 | +[](https://github.com/artbear/1testrunner/releases) |
| 5 | +[](http://build.oscript.io/job/oscript-library/job/1testrunner/job/develop/) |
| 6 | +[](https://ci.appveyor.com/project/artbear/1testrunner) |
| 7 | +[](https://travis-ci.org/artbear/1testrunner) |
2 | 8 |
|
3 | 9 | Организовано приемочное тестирование, аналогичное тестированию 1C в проекте [xUnitFor1C](https://github.com/xDrivenDevelopment/xUnitFor1C/wiki) |
4 | 10 |
|
5 | 11 | Основные принципы работы с тестами для скриптов OneScript описаны в [официальной документации OneScript](http://oscript.io/docs/page/testing) |
6 | 12 |
|
7 | 13 | # Использование тестирования (выдержка из документации OneScript) |
8 | 14 |
|
9 | | -## Пример запуска всех приемочных тестов ### |
| 15 | +## Пример запуска всех приемочных тестов |
10 | 16 |
|
11 | 17 | Проверить все файлы текущего каталога из командной строки (с паузой, если есть упавшие тесты): |
12 | 18 |
|
|
20 | 26 |
|
21 | 27 | cmd /c C:\Projects\1script\tests\start-all.cmd . notpause |
22 | 28 |
|
23 | | -## Запуск тестов ### |
| 29 | +## Запуск тестов |
24 | 30 |
|
25 | | -### Формат командной строки: |
| 31 | +### Формат командной строки |
26 | 32 |
|
27 | 33 | 1testrunner [-command] testfile|testdir [test-id|test-number] [-option [optionData]] |
28 | 34 |
|
|
41 | 47 | * `xddReportPath` - формировать отчет тестирования в формате junit-xml |
42 | 48 | * * [optionData] - полный или относительный путь к каталогу, где формировать файл *.xml |
43 | 49 |
|
44 | | -### Примеры: |
| 50 | +### Примеры |
45 | 51 |
|
46 | 52 | * `1testrunner -show testfile` - вывод списка тестов |
47 | 53 | * `1testrunner testfile` или `1testrunner -run testfile` - запуск всех тестов из файла |
|
51 | 57 | * `1testrunner -runall tests` - запуск всех тестов из каталога tests |
52 | 58 | * `1testrunner -runall tests xddReportPath .` - запуск всех тестов из каталога tests и формирование отчета тестирования в формате junit-xml |
53 | 59 |
|
54 | | -### Формат скриптов-тестов |
| 60 | +### Формат скриптов-тестов (предопределенные методы) |
55 | 61 |
|
56 | 62 | Тесты находятся в каталоге `tests` |
57 | 63 |
|
|
65 | 71 | // основной метод для тестирования |
66 | 72 | Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт |
67 | 73 |
|
68 | | - юТест = ЮнитТестирование; |
| 74 | + юТест = ЮнитТестирование; |
69 | 75 |
|
70 | | - ВсеТесты = Новый Массив; |
| 76 | + ВсеТесты = Новый Массив; |
| 77 | + ВсеТесты.Добавить("ТестДолжен_ПроверитьВерсию"); |
71 | 78 |
|
72 | | - ВсеТесты.Добавить("ТестДолжен_ПроверитьВерсию"); |
| 79 | + Возврат ВсеТесты; |
| 80 | +КонецФункции |
| 81 | +
|
| 82 | +// вызывается 1 раз перед выполнением всех тестов в файле |
| 83 | +// для инициализации окружения, общего для всех тестов |
| 84 | +// |
| 85 | +Процедура ПередЗапускомТестов() Экспорт |
| 86 | +
|
| 87 | +КонецПроцедуры |
| 88 | +
|
| 89 | +// вызывается перед выполнением каждого тестового метода |
| 90 | +// для выполнения общих действий перед каждым тестом |
| 91 | +// |
| 92 | +Процедура ПередЗапускомТеста() Экспорт |
| 93 | +
|
| 94 | +КонецПроцедуры |
| 95 | +
|
| 96 | +// вызывается после выполнения каждого тестового метода |
| 97 | +// для выполнения общих действий после каждого теста |
| 98 | +// |
| 99 | +Процедура ПослеЗапускаТеста() Экспорт |
| 100 | +
|
| 101 | +КонецПроцедуры |
| 102 | +
|
| 103 | +// вызывается 1 раз после выполнения всех тестов в файле |
| 104 | +// для выполнения общих действий после всех тестов, например, освобождения ресурсов |
| 105 | +// |
| 106 | +Процедура ПослеЗапускаТестов() Экспорт |
73 | 107 |
|
74 | | - Возврат ВсеТесты; |
| 108 | +КонецПроцедуры |
| 109 | +
|
| 110 | +Процедура ТестДолжен_ПроверитьВерсию() Экспорт |
| 111 | + Утверждения.ПроверитьРавенство("0.1", Версия()); |
| 112 | +КонецПроцедуры |
| 113 | +
|
| 114 | +Функция Версия() Экспорт |
| 115 | + Возврат "0.1"; |
75 | 116 | КонецФункции |
| 117 | +``` |
| 118 | + |
| 119 | +### Формат скриптов-тестов (аннотированные методы) |
| 120 | + |
| 121 | +Для удобства написания тестов возможно использование анотаций методов в файле тестов: |
| 122 | + |
| 123 | +* &Инициализация |
| 124 | +* &Завершение |
| 125 | +* &Перед |
| 126 | +* &После |
| 127 | +* &Тест |
| 128 | +* &Параметры |
76 | 129 |
|
| 130 | +См. пример. |
| 131 | + |
| 132 | +```bsl |
| 133 | +#Использовать asserts |
| 134 | +
|
| 135 | +Перем юТест; |
| 136 | +
|
| 137 | +// вызывается 1 раз перед выполнением всех тестов в файле |
| 138 | +// для инициализации окружения, общего для всех тестов |
| 139 | +// возможно последовательное выполнение нескольких методов с аннотацией &Инициализация |
| 140 | +// |
| 141 | +&Инициализация |
| 142 | +Процедура ПередЗапускомТестов() Экспорт |
| 143 | +
|
| 144 | + юТест = ЮнитТестирование; |
| 145 | +
|
| 146 | +КонецПроцедуры |
| 147 | +
|
| 148 | +// вызывается перед выполнением каждого тестового метода |
| 149 | +// для выполнения общих действий перед каждым тестом |
| 150 | +// возможно последовательное выполнение нескольких методов с аннотацией &Перед |
| 151 | +// |
| 152 | +&Перед |
| 153 | +Процедура ПередЗапускомТеста() Экспорт |
| 154 | +
|
| 155 | +КонецПроцедуры |
| 156 | +
|
| 157 | +// вызывается после выполнения каждого тестового метода |
| 158 | +// для выполнения общих действий после каждого теста |
| 159 | +// возможно последовательное выполнение нескольких методов с аннотацией &После |
| 160 | +// |
| 161 | +&После |
| 162 | +Процедура ПослеЗапускаТеста() Экспорт |
| 163 | +
|
| 164 | +КонецПроцедуры |
| 165 | +
|
| 166 | +// вызывается 1 раз после выполнения всех тестов в файле |
| 167 | +// для выполнения общих действий после всех тестов, например, освобождения ресурсов |
| 168 | +// возможно последовательное выполнение нескольких методов с аннотацией &Завершение |
| 169 | +// |
| 170 | +&Завершение |
| 171 | +Процедура ПослеЗапускаТестов() Экспорт |
| 172 | +
|
| 173 | +КонецПроцедуры |
| 174 | +
|
| 175 | +&Тест |
77 | 176 | Процедура ТестДолжен_ПроверитьВерсию() Экспорт |
78 | | - Утверждения.ПроверитьРавенство("0.1", Версия()); |
| 177 | + Утверждения.ПроверитьРавенство("0.1", Версия()); |
| 178 | +КонецПроцедуры |
| 179 | +
|
| 180 | +// возможна передача параметров теста через аннотацию &Параметры |
| 181 | +// тест будет вызван для каждого набора параметров |
| 182 | +// |
| 183 | +&Тест |
| 184 | +&Параметры(1, 2, Ложь) |
| 185 | +&Параметры(1, 1, Истина) |
| 186 | +Процедура ТестДолжен_ВыполнитьсяСПараметрами(ПервоеЗначение, ВтороеЗначение, Ожидание) Экспорт |
| 187 | + Результат = (ПервоеЗначение = ВтороеЗначение); |
| 188 | + Утверждения.ПроверитьРавенство(Ожидание, Результат); |
79 | 189 | КонецПроцедуры |
80 | 190 |
|
81 | 191 | Функция Версия() Экспорт |
82 | | - Возврат "0.1"; |
| 192 | + Возврат "0.1"; |
83 | 193 | КонецФункции |
84 | 194 | ``` |
85 | 195 |
|
|
111 | 221 |
|
112 | 222 | В случае ошибок в тестах/файле будет выдано окно консоли с описанием ошибки. |
113 | 223 |
|
114 | | -### Пример запуска всех приемочных тестов ### |
| 224 | +### Для запуска всех приемочных тестов в текущем каталоге |
115 | 225 |
|
116 | 226 | 1testrunner -runall "$(CURRENT_DIRECTORY)" |
0 commit comments