Фреймворк для тестирования приложений и библиотек OneScript
Следующий пример даёт представление о минимально необходимом наборе компонентов для написания тестов. В следующих разделах будет представлена дополнительная информация о возможностях фреймворка.
#Использовать asserts
&Тест
Процедура МойПервыйТест() Экспорт
// Дано
Калькулятор = Новый Калькулятор();
// Когда
Результат = Калькулятор.Сложить(1, 1);
// Тогда
Ожидаем.Что(Результат).Равно(2);
КонецПроцедуры
OneUnit поддерживает следующие аннотации для настройки тестов и расширения возможностей фреймворка.
Аннотация | Описание |
---|---|
&ТестовыйНабор |
Обозначает, что сценарий является тестовым набором, используется для настройки жизненного цикла тестового набора |
&Тест |
Обозначает, что метод является простым тестом. Эта аннотация не объявляет никаких параметров, тест исполняется как есть |
&ПараметризованныйТест |
Обозначает, что метод является параметризованным тестом |
&ПовторяемыйТест |
Обозначает, что метод является повторяемым тестом |
&ОтображаемоеИмя |
Объявляет пользовательское отображаемое имя для тестового метода |
&Порядок |
Используется для настройки порядка выполнения тестовых наборов и методов |
&ПередКаждым |
Обозначает, что аннотированный метод должен быть выполнен перед каждым &Тест , &ПараметризованныйТест или &ПовторяемыйТест методом в текущем наборе |
&ПослеКаждого |
Обозначает, что аннотированный метод должен быть выполнен после каждого &Тест , &ПараметризованныйТест или &ПовторяемыйТест методом в текущем наборе |
&ПередВсеми |
Обозначает, что аннотированный метод должен быть выполнен до всех &Тест , &ПараметризованныйТест или &ПовторяемыйТест методом в текущем наборе |
&ПослеВсех |
Обозначает, что аннотированный метод должен быть выполнен после всех &Тест , &ПараметризованныйТест или &ПовторяемыйТест методом в текущем наборе |
&Тег |
Используется для объявления тегов для фильтрации тестов на уровне набора или метода |
&Выключен |
Используется для отключения тестового набора или тестового метода |
&Таймаут |
Используется для провала &Тест , &ПараметризованныйТест или &ПовторяемыйТест метода, если его выполнение превышает заданную продолжительность. |
Тестовые методы и методы жизненного цикла должны быть объявлены локально в тестовом наборе, они не должны возвращать значение (любой результат будет проигнорирован).
Видимость методов.
Тестовые методы и методы жизненного цикла должны быть объявлены какЭкспорт
Следующий тестовый набор демонстрирует использование &Тест
методов и всех поддерживаемых методов жизненного цикла.
#Использовать asserts
&ПередВсеми
Процедура ИнициализироватьВсе() Экспорт
КонецПроцедуры
&ПередКаждым
Процедура Инициализировать() Экспорт
КонецПроцедуры
&Тест
Процедура УспешныйТест() Экспорт
КонецПроцедуры
&Тест
Процедура ПадающийТест() Экспорт
Ожидаем.Что(Ложь, "Падающий тест").ЭтоИстина();
КонецПроцедуры
&Тест
&Выключен("Для демонстрации")
Процедура ПропущенныйТест() Экспорт
// Не будет выполнен
КонецПроцедуры
&ПослеКаждого
Процедура Завершение() Экспорт
КонецПроцедуры
&ПослеВсех
Процедура ЗавершениеВсех() Экспорт
КонецПроцедуры
Тестовые методы могут объявлять пользовательские отображаемые имена через &ОтображаемоеИмя
- в котором можно будет использовать пробелы, специальные символы и даже эмодзи, которые будут отображаться в отчётах о тестировании и логе выполнения.
&Тест
&ОтображаемоеИмя("Произвольное имя теста содержащее пробелы")
Процедура ТестСОтображаемымИменемСодержащимПробелы() Экспорт
КонецПроцедуры
&Тест
&ОтображаемоеИмя("╯°□°)╯")
Процедура ТестСОтображаемымИменемСодержащимСпециальныеСимволы() Экспорт
КонецПроцедуры
&Тест
&ОтображаемоеИмя("😱")
Процедура ТестСОтображаемымИменемСодержащимЭмодзи() Экспорт
КонецПроцедуры
В OneUnit если исключение выдаётся из тестового метода или метода жизненного цикла и не перехватывается в этом тестовом методе или методе жизненного цикла, то фреймворк пометит тест как упавший.
В следующем примере ПадениеПриНеперехваченномИсключении()
методы вызывает исключение Деление на ноль
. Поскольку исключение не перехватывается, тест будет помечен как упавший.
&Тест
Процедура ПадениеПриНеперехваченномИсключении() Экспорт
// Следующий код выбрасывает исключение деления на ноль, которое вызовет падение теста
Калькулятор = Новый Калькулятор();
Калькулятор.Разделить(1, 0);
КонецПроцедуры
Целые тестовые наборы или отдельные тестовые методы можно отключить с помощью аннотации &Выключен
, или с помощью одной из аннотаций перечисленных в разделе Условное выполнение тестов.
При применении аннотации &Выключен
на уровне набора, все методы тестирования и методы жизненного цикла в этом наборе также будут отключены.
Если тестовый метод отключен через аннотацию &Выключен
, это предотвращает вызовов методов жизненного цикла на уровне метода, таких как &ПередКаждым
, &ПослеКаждого
. Однако это не предотвращает создание экземпляра тестового набора и не предотвращает выполнение методов жизненного цикла на уровне набора, таких как &ПередВсеми
, &ПослеВсех
.
Вот &Выключен
тестовый набор
&Тест
Процедура ТестБудетПропущен() Экспорт
КонецПроцедуры
&Выключен("Выключен до устранения ошибки #42")
&ТестовыйНабор
Процедура ПриСозданииОбъекта()
КонецПроцедуры
А вот тестовый набор, в котором тестовый метод отключен с помощью аннотации &Выключен
&Выключен("Выключен до устранения ошибки #42")
&Тест
Процедура ТестБудетПропущен() Экспорт
КонецПроцедуры
&Тест
Процедура ТестБудетВыполнен() Экспорт
КонецПроцедуры
В дополнение к аннотации &Выключен
, OneUnit также поддерживает несколько других условий, которые позволяют разработчиками включать или отключать тестовые наборы и методы декларативно. Если вы хотите предоставить сведения о том почему тест отключен, каждая аннотация имеет параметр Причина
в котором вы можете указать причину отключения.
Если зарегистрировано несколько условий, то тест будет отключен, если хотя бы одно из условий истинно. Если тестовый набор отключен все тестовые методы в этом наборе также будут отключены. Если тестовый метод отключен, то вызовы методов жизненного цикла на уровне метода, таких как &ПередКаждым
, &ПослеКаждого
, будут пропущены. Однако это не предотвращает создание экземпляра тестового набора и не предотвращает выполнение методов жизненного цикла на уровне набора, таких как &ПередВсеми
, &ПослеВсех
.
Набор или тест можно включить или отключить в определённой операционной системе с помощью аннотаций: &ВключенНаОС
, &ВыключенНаОС
.
Операционная система задаётся строкой, которая соответствует одной из следующих констант: Windows
, Linux
, MacOS
&Тест
&ВыключенНаОС("Windows")
Процедура ВыключенНаОСWindows() Экспорт
КонецПроцедуры
&Тест
&ВыключенНаОС("Linux")
Процедура ВыключенНаОСLinux() Экспорт
КонецПроцедуры
&Тест
&ВыключенНаОС("MacOS")
Процедура ВыключенНаОСMacOS() Экспорт
КонецПроцедуры
&Тест
&ВключенНаОС("Windows")
Процедура ВключенНаОСWindows() Экспорт
КонецПроцедуры
&Тест
&ВключенНаОС("Linux")
Процедура ВключенНаОСLinux() Экспорт
КонецПроцедуры
&Тест
&ВключенНаОС("MacOS")
Процедура ВключенНаОСMacOS() Экспорт
КонецПроцедуры
Набор или тест можно включить или отключить в определённой версии OneScript с помощью аннотаций: &ВключенДляOneScript
, &ВыключенДляOneScript
.
Версия OneScript задаётся строкой, которая соответствует шаблону по правилам библиотеки semver.
&Тест
&ВыключенДляOneScript("<2")
Процедура ВыключенДляOneScriptМладшеДвойки() Экспорт
КонецПроцедуры
&Тест
&ВыключенДляOneScript("~2.0")
Процедура ВыключенДляOneScriptСтаршеДвойки() Экспорт
КонецПроцедуры
&Тест
&ВключенДляOneScript("<2")
Процедура ВключенДляOneScriptМладшеДвойки() Экспорт
КонецПроцедуры
&Тест
&ВключенДляOneScript(">2.0")
Процедура ВключенДляOneScriptСтаршеДвойки() Экспорт
КонецПроцедуры
Так же вы можете создать свои собственные условия на основе лямбда выражения, для этого используется аннотация &ВключенЕсли
, &ВыключенЕсли
. Лямбда выполняется в контексте тестового набора и может использовать его поля и методы тестового набора. Лямбда выражение должно возвращать булево значение, и не принимать аргументов.
&Тест
&ВыключенЕсли("() -> Истина")
Процедура ВыключенВсегда() Экспорт
КонецПроцедуры
&Тест
&ВключенЕсли("() -> Ложь")
Процедура ВключенНикогда() Экспорт
КонецПроцедуры
&Тест
&ВключенЕсли("() -> УсловиеВключения()")
Процедура ТестКоторыйВключенЕслиУсловиеВключенияВернулоИстину() Экспорт
КонецПроцедуры
Функция УсловиеВключения() Экспорт
Возврат Истина;
КонецФункции
Тестовые наборы и методы могут быть помечены с помощью аннотации &Тег
. Эти теги могут быть позже использованы для фильтрации обнаружения и выполнения тестов
&Тест
&Тег("Налоги")
Процедура ТестРасчетНДС()
КонецПроцедуры
&Тег("Быстрый")
&Тег("Модель")
Процедура ПриСозданииОбъекта()
КонецПроцедуры
Чтобы настроить порядок выполнения тестов, используйте аннотацию &Порядок
, разместив её на конструкторе тестового набора, вы будете управлять порядком выполнения набора среди других наборов. Размещение аннотации на конструкторе тестового метода, позволит настроить порядок выполнения метода среди других методов набора.
&Порядок(2) // Тест будет выполнен вторым
&Тест
Процедура Второй() Экспорт
КонецПроцедуры
&Порядок(1) // Тест будет выполнен первым
&Тест
Процедура Первый() Экспорт
КонецПроцедуры
&Порядок(2) // Порядок выполнения набора
Процедура ПриСозданииОбъекта()
КонецПроцедуры
Чтобы позволить отдельным тестовым методам выполняться изолированно и избежать неожиданных побочных эффектор из-за изменяемого состояния тестового набора, OneUnit создаёт новый экземпляр тестового набора для каждого тестового метода. Этот жизненный цикл тестового набора Компанейский
является поведением по умолчанию в UneUnit.
Обратите внимание что экземпляр тестового набора всё равно будет создан если заданный тестовый метод отключен с помощью условия (например
&Выключен
,&ВыключенНаОС
, и т.д) даже если режим жизненного циклаКомпанейский
задан для тестового набора.
Если вы предпочитаете, чтобы OneUnit выполнял все тестовые методы на одном экземпляре тестового набора, аннотируйте конструктор своего тестового набора &ТестовыйНабор("Одиночка")
. При использовании этого режима новый экземпляр тестового набора будет создан только один раз. Таким образом, если ваши тестовые методы полагаются на состояние, хранящееся в переменных экземпляра тестового набора, вам может может потребоваться сбросить это состояние в методах &ПередКаждым
или &ПослеКаждого
OneUnit предоставляет возможность повторять тест указанное количество раз, аннотируя тестовый метод с помощью &ПовторяемыйТест
и указывая количество желаемых повторений. Каждый вызов повторного теста ведёт себя как выполнение обычного &Тест
метода с полной поддержкой тех же методов жизненного цикла.
В следующем примере показано, как объявить тест с именем ПовторяемыйТест()
который будет автоматически повторён 10 раз.
&ПовторяемыйТест(10)
Процедура ПовторяемыйТест() Экспорт
КонецПроцедуры
В дополнение к указанию количества повторений, вы можете настроить шаблон пользовательского заполняемого имени для каждого повторения через параметр Имя
аннотации &ПовторяемыйТест
. Поддерживаются следующие динамически заполняемые элементы шаблона:
{ОтображаемоеИмя}
- По правилам аннотации&ОтображаемоеИмя
{ТекущееПовторение}
- Текущее повторение теста{ВсегоПовторений}
- Всего повторений теста
Отображаемое имя по умолчанию для каждого повторения теста: "Повторение {ТекущееПовторение} из {ВсегоПовторений}"
. Таким образом, отображаемые имена для отдельных повторений предыдущего примера будут: Повторение 1 из 10
, Повторение 2 из 10
, и т.д. Если вы хотите, чтобы &ОтображаемоеИмя
метода было включено в имя каждого повторения, вы можете определить свой собственный шаблон.
Параметризованные тесты позволяют запускать тест несколько раз с разными аргументами. Они объявляются так же как и обычные &Тест
методы, но используется аннотация &ПараметризованныйТест
. Кроме того необходимо объявить по крайней мере один источник, который будет предоставлять аргументы для каждого вызова, а затем использовать аргументы в тестовом методе.
В следующем примере демонстрируется параметризованный тест, который использует &ИсточникЗначение
аннотацию для указания константных строк в качестве источника аргументов.
&ПараметризованныйТест
&ИсточникЗначение("Потоп")
&ИсточникЗначение("Кабак")
&ИсточникЗначение("Громилы мыли морг")
Процедура Палиндром(Кандидат) Экспорт
Ожидаем.Что(ЭтоПалиндром(Кандидат)).ЭтоИстина();
КонецПроцедуры
При выполнении вышеприведённого примера каждый вызов будет сообщаться отдельно. Например в консоль будет залогировано следующее:
└─ Палиндром
├─ [Потоп] ✔
├─ [Кабак] ✔
└─ [Громилы мыли морг] ✔
Из коробки OneUnit предоставляет довольно много аннотаций источников аргументов. Каждый из следующих подразделов содержит краткий обзор и пример использования.
ИсточникЗначение
является одним из самых простых возможных источников аргументов. Он позволяет указать одно или несколько литеральных значений, которые будут использоваться в качестве аргументов для каждого вызова параметризованного тестового метода.
Например, следующий &ПараметризованныйТест
метод будет вызван три раза со значениями: (1, 2), (3, 4) и (5, 6).
&ПараметризованныйТест
&ИсточникЗначение(1, 2)
&ИсточникЗначение(3, 4)
&ИсточникЗначение(5, 6)
Процедура ПараметризованныйТест(Аргумент1, Аргумент2) Экспорт
Для проверки пограничных случаев и проверки корректного поведения нашего ПО при предоставлении ему некорректных входных данных может быть полезно передать Неопределено
в качестве значений аргументов наших параметризованных тестов.
Для этого используется аннотация &ИсточникНеопределено
.
&ПараметризованныйТест
&ИсточникНеопределено
Процедура ПараметризованныйТест(ЯНеопределено, ЯТоже) Экспорт
ИсточникПеречисление
обеспечивает удобный способ использования констант типа системное перечисление, а так же модулей с полями константами так же известными как пользовательские перечисления.
Системное перечисление:
При передаче в качестве параметра имени системного перечисления, параметризованный тест будет вызван для каждого значения перечисления которое будет передано в качестве аргумента в первый параметр тестового метода.
&ПараметризованныйТест
&ИсточникПеречисление("СтатусСообщения")
Процедура ПараметризованныйТест(Значение) Экспорт
Пользовательское перечисление:
При передаче в качестве параметра имени модуля, параметризованный тест будет вызван для каждого экспортного поля этого модуля, значение которого будет передано в качестве аргумента в первый параметр тестового метода.
// МойКласныйМодуль.os
Перем А;
Перем Б;
А = "А";
А = "Б";
// МойКласныйТест.os
&ПараметризованныйТест
&ИсточникПеречисление("МойКлассныйМодуль")
Процедура ПараметризованныйТест(Значение) Экспорт
// Вызовется дважды: с аргументами: "А" и "Б"
ИсточникJSON
позволяет использовать JSON строку или файл в качестве источника аргументов для параметризованного теста.
Переданный json должен представлять из себя массив объектов, в каждом из которых ключ это имя параметра, а значение аргумент.
Аргументы литералом:
С помощью строкового литерала вы можете передать JSON массив значений параметров, где для каждого JSON объекта будет создать экземпляр тестового метода с соответствующими аргументами.
В данном примере будут вызваны три экземпляра тестового метода с аргументами: (1, 2), (3, 4) и (5, 6).
Обратите внимание, что порядок полей в рамках JSON объекта не важен, сопоставление идёт по ключу и имени параметра метода
&ПараметризованныйТест
&ИсточникJSON(
"[
| {""Параметр1"": 1, ""Параметр2"": 2},
| {""Параметр2"": 4, ""Параметр1"": 3},
| {""Параметр1"": 5, ""Параметр2"": 6}
|]"
)
Процедура ПараметризованныйТест(Параметр1, Параметр2);
Аргументы файлом:
Вы так же можете передать путь к JSON файлу при помощи параметра Файл
в аннотации. Путь может быть относительным или абсолютным. Относительный путь разрешается относительно текущего каталога, в котором запускается выполнение тестов, обычно это корень проекта.
&ПараметризованныйТест
&ИсточникJSON(Файл = "tests/fixtures/params.json")
Процедура ИсточникJSONФайл(Параметр1, Параметр2) Экспорт
ИсточникВыражение
позволяет использовать лямбда-выражение в качестве источника аргументов для параметризованного теста. Лямбда-выражение не должно иметь параметров и должно возвращать процессор коллекции
из списоков аргументов для параметризованного теста
Аргументы передаются в тестовый метод в порядке их следования в списке
Лямбда захватывает объект тестового набора, так что ему доступны публичные\приватные поля объекта а так же экспортные методы
Пример:
// &ПараметризованныйТест
// &ИсточникВыражение("() -> ПроцессорыКоллекций.ИзНабора(Списки.ИзЭлементов(1, 2), Списки.ИзЭлементов(3, 4))")
// Процедура Тест(ПараметрПервый, ПараметрВторой)
Пример с вызовом локального метода:
&ПараметризованныйТест
&ИсточникВыражение("() -> ПоставщикИсточникВыражение()")
Процедура Тест(ПараметрПервый, ПараметрВторой)
Функция ПоставщикИсточникВыражение() Экспорт
Возврат ПроцессорыКоллекций.ИзНабора(
Списки.ИзЭлементов(1, 2),
Списки.ИзЭлементов(3, 4),
Списки.ИзЭлементов(5, 6)
);
КонецФункции
По умолчанию отображаемое имя параметризованного теста содержит строковое представление всех аргументов конкретного вызова.
Вы можете настроить отображаемое имя вызова с помощью параметра Имя
аннотации &ПараметризованныйТест
.
Например:
&ПараметризованныйТест(Имя = "Тест с аргументами: {Параметры}")
&ИсточникЗначение(1, 2)
Процедура Тест(Параметры) Экспорт
При выполнении вышеприведённого примера каждый вызов будет сообщаться отдельно. Например в консоль будет залогировано следующее:
└─ Тест
├─ Тест с аргументами: [1, 2]
└─ Тест с аргументами: [3, 4]
Поддерживаются следующие динамически заполняемые элементы шаблона:
{ОтображаемоеИмя}
- По правилам аннотации&ОтображаемоеИмя
{Параметры}
- Строковое представление всех аргументов теста
Аннотация &Таймаут
позволяет объявить, что тест должен завершится неудачей, если время его выполнения превышает заданную продолжительность. Единица времени для продолжительности - миллисекунды.
Следующий пример показывает, как &Таймаут
применяется к тестовому методу.
&Тест
&Таймаут(500)
Процедура ТестСТаймаутом() Экспорт
Чтобы применить тот же таймаут ко всем тестовым методам в тестовом наборе, можно объявить аннотацию &Таймаут
на конструкторе тестового набора.
Если таймаут указан для
&ПовторяемыйТест
или&ПараметризованныйТест
, то он будет применён к каждому вызову тестового метода.
OneUnit поставляется вместе с приложением командной строки oneunit
, которое предоставляет вам возможность выполнять запуск тестов.
Вы можете запустить выполнение тестов по примеру как показано ниже:
$ oneunit execute
├─ СтандартныеТесты (.\tests\СтандартныеТесты.os)
│ ├─ УспешныйТест ✔ (2 мс)
│ └─ ПропущенныйТест ↷ Для демонстрации
└─ СпециальныеТесты (.\tests\СпециальныеТесты.os)
├─ Произвольное имя теста содержащее пробелы ✔ (3 мс)
├─ ╯°□°)╯ ✔ (1 мс)
└─ 😱 ✔ (1 мс)
Запуск тестов завершился за 83 мс
[ 2 Наборов обнаружено ]
[ 0 Наборов пропущено ]
[ 2 Наборов успешных ]
[ 0 Наборов ошибочных ]
[ 5 Тестов обнаружено ]
[ 1 Тестов пропущено ]
[ 4 Тестов успешных ]
[ 0 Тестов ошибочных ]
Тестирование завершилось удачно
Приложение командной строки поддерживает следующие команды:
$ oneunit
Приложение: OneUnit
Фреймворк тестирования для OneScript
Строка запуска: OneUnit [ОПЦИИ] КОМАНДА [аргументы...]
Опции:
-v, --version показать версию и выйти
Доступные команды:
help, h Вывести справку по командам
discover, d Выводит в консоль все обнаруженные тесты
execute, e Тестирует проект
Для вывода справки по доступным командам наберите: OneUnit КОМАНДА --help
$ oneunit discover
Команда: discover, d
Выводит в консоль все обнаруженные тесты
Строка запуска: OneUnit discover [ОПЦИИ]
Опции:
-d, --directory Путь к каталогу с тестовыми наборами, повторяемый.
В случае если не были переданы -d и -f принимает значение по умолчанию "./tests"
-r, --recursive При поиске тестовых наборов в каталогах искать так же в подкаталогах
-f, --file Путь к файлу с тестами, повторяемый
-t, --tagsInclude Теги включаемые в тестовый прогон
-T, --tagsExclude Теги исключаемые из тестового прогона
-s, --testsuiteNameInclude Тестовые наборы включаемые в тестовый прогон
-S, --testsuiteNameExclude Тестовые наборы исключаемые из тестовый прогон
-m, --testMethodsNameInclude Тестовые методы включаемые в тестовый прогон
-M, --testMethodsNameExclude Тестовые методы исключаемые из тестовый прогон
--mode Режим вывода исполнения в консоль:
none - Не выводить ничего, в случае если были ошибки, то ошибки и статистика будут выведены
summary - Выводить только статистику, в случае если были ошибки, то они также будут выведены
flat - Выводить плоский список процесса исполнения теста, а так же ошибки и статистику
tree - Выводить дерево процесса исполнения теста, а так же ошибки и статистику
(по умолчанию tree)
$ oneunit execute
Команда: execute, e
Тестирует проект
Строка запуска: OneUnit execute [ОПЦИИ]
Опции:
-d, --directory Путь к каталогу с тестовыми наборами, повторяемый.
В случае если не были переданы -d и -f принимает значение по умолчанию "./tests"
-r, --recursive При поиске тестовых наборов в каталогах искать так же в подкаталогах
-f, --file Путь к файлу с тестами, повторяемый
-t, --tagsInclude Теги включаемые в тестовый прогон
-T, --tagsExclude Теги исключаемые из тестового прогона
-s, --testsuiteNameInclude Тестовые наборы включаемые в тестовый прогон
-S, --testsuiteNameExclude Тестовые наборы исключаемые из тестовый прогон
-m, --testMethodsNameInclude Тестовые методы включаемые в тестовый прогон
-M, --testMethodsNameExclude Тестовые методы исключаемые из тестовый прогон
--timeout Время ожидания выполнения каждого теста по умолчанию (в миллисекундах) (по умолчанию 0)
--junit Путь к файлу отчета в формате JUnit
--genericExecution Путь к файлу отчета в формате GenericExecution
--openTestReport Путь к файлу отчета в формате OpenTestReport
--genericCoverage Путь к файлу отчета покрытия в формате GenericCoverage
--cobertura Путь к файлу отчета покрытия в формате Cobertura
--mode Режим вывода исполнения в консоль:
none - Не выводить ничего, в случае если были ошибки, то ошибки и статистика будут выведены
summary - Выводить только статистику, в случае если были ошибки, то они также будут выведены
flat - Выводить плоский список процесса исполнения теста, а так же ошибки и статистику
tree - Выводить дерево процесса исполнения теста, а так же ошибки и статистику
(по умолчанию tree)
По умолчанию OneUnit при исполнении будет пытаться уважать зависимости вашего проекта, если вы используете локальные зависимости, то их нужно задать через oscript.cfg
, который oneunit будет ожидать в текущего каталоге запуска, директориях тестов и в директориях в которых лежат переданные файлы тестов. Вся информация в найденных oscript.cfg
будет объединена для запуска исполнения oneunit.
Важно
При использовании локальных зависимостей проекта, пожалуйста убедитесь что у вас установлены зависимости версий не меньших чем требуется для oneunit, версии нужны для работы указаны в packagedef, если вы используете зависимости версий ниже чем указано, то скорее всего вы получите разнообразные ошибки при запуске тестов.