Skip to content

Commit

Permalink
Merge branch 'develop' into new-file-copy-steps
Browse files Browse the repository at this point in the history
  • Loading branch information
artbear committed Nov 10, 2024
2 parents f02b071 + 861c646 commit d2de2e8
Show file tree
Hide file tree
Showing 14 changed files with 143 additions and 34 deletions.
80 changes: 80 additions & 0 deletions .github/workflows/qa.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# MIT License
# Copyright (C) 2020 Tymko Oleg <olegtymko@yandex.ru> and contributors
# All rights reserved.

name: Контроль качества
# Любой пуш и pr в проекте но с фильтром по основному проекту
on: [push, pull_request]

env:
# отключение безопасности установки
ACTIONS_ALLOW_UNSECURE_COMMANDS: true

jobs:
build:
if: github.repository == 'artbear/1bdd'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
oscript_version: ['1.8.3']

steps:
# Загрузка проекта
- name: Актуализация
uses: actions/checkout@v2
with:
fetch-depth: 0

# https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions
- name: Извлечение имени текущей ветки
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
id: extract_branch

# Установка OneScript конкретной версии
- name: Установка OneScript
uses: otymko/setup-onescript@v1.1
with:
version: ${{ matrix.oscript_version }}

# Установка зависимостей пакета
- name: Установка зависимостей
run: |
opm install opm
opm install --dev
# Запуск тестов и сбор покрытия кода
- name: Покрытие кода
run: oscript ./tasks/coverage.os

- name: Извлечение версии пакета
shell: bash
run: echo "##[set-output name=version;]`cat src/Модули/Константы_1bdd.os | grep "ВерсияПродукта\s*=" | sed 's|[^"]*"||' | sed -r 's/".+//'`"
id: extract_version

- name: Установка Sonar-scanner
uses: warchant/setup-sonar-scanner@v1

# Анализ проекта в SonarQube (ветка)
- name: Анализ в SonarQube (branch)
if: github.event_name == 'push'
run: sonar-scanner
-Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}
-Dsonar.host.url=${{ secrets.SONARQUBE_HOST }}
-Dsonar.branch.name=${{ steps.extract_branch.outputs.branch }}
-Dsonar.projectVersion=${{ steps.extract_version.outputs.version }}

# Анализ проекта в SonarQube (PR)
# https://docs.sonarqube.org/latest/analysis/pull-request/
- name: Анализ в SonarQube (pull-request)
if: github.event_name == 'pull_request'
run: sonar-scanner
-Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}
-Dsonar.host.url=${{ secrets.SONARQUBE_HOST }}
-Dsonar.branch.name=${{ steps.extract_branch.outputs.branch }}
-Dsonar.pullrequest.key=${{ github.event.pull_request.number }}
-Dsonar.pullrequest.branch=${{ github.event.pull_request.head.ref }}
-Dsonar.pullrequest.base=${{ github.event.pull_request.base.ref }}
-Dsonar.scm.revision=${{ github.event.pull_request.head.sha }}
37 changes: 37 additions & 0 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# MIT License
# Copyright (C) 2020 Tymko Oleg <olegtymko@yandex.ru> and contributors
# All rights reserved.

name: _Тестирование
# Любой пуш и pr в проекте
on: [push, pull_request]

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
oscript_version: ['1.8.3']

steps:
# Загрузка проекта
- name: Актуализация
uses: actions/checkout@v2

# Установка OneScript конкретной версии
- name: Установка OneScript
uses: otymko/setup-onescript@v1.1
with:
version: ${{ matrix.oscript_version }}

# Установка зависимостей пакета
- name: Установка зависимостей
run: |
opm install opm
opm install --dev
# Задача тестирования, в результате ожидается успешное выполнение
- name: Тестирование
run: oscript ./tasks/test.os
4 changes: 2 additions & 2 deletions features/core/Hooks.feature
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

# Сценарий: Проверка выполнения хуков

Тогда проверка поведения фичи "ПроверкаХуков" закончилась с кодом возврата 1
Тогда проверка поведения фичи "ПроверкаХуков" закончилась с кодом возврата 0
И я подставил файл шагов фичи "ПроверкаХуков" из каталога "tests/fixtures"
И проверка поведения фичи "ПроверкаХуков" закончилась с кодом возврата 0
И текст файла-журнала равен ";ПередЗапускомСценария-Запись в файл журнала;ШагСценария;ПослеЗапускаСценария-Запись в файл журнала"
Expand All @@ -45,7 +45,7 @@

# Сценарий: Выполнение контекста после хука ПередЗапускомСценария

Тогда проверка поведения фичи "ПроверкаХуков" закончилась с кодом возврата 1
Тогда проверка поведения фичи "ПроверкаХуков" закончилась с кодом возврата 0
И я подставил файл шагов фичи "ПроверкаХуков" из каталога "tests/fixtures"
И проверка поведения фичи "ПроверкаХуков" закончилась с кодом возврата 0
И текст файла-журнала равен ";ПередЗапускомСценария-Запись в файл журнала с контекстом;ШагКонтекста;ШагСценария;ПослеЗапускаСценария-Запись в файл журнала с контекстом"
2 changes: 1 addition & 1 deletion features/core/junit-xml.feature
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@

Сценарий: Получение отчета в формате JUnit-xml для нереализованного теста

Тогда проверка поведения фичи "НеРеализованныйШаг" с передачей параметра "-junit-out ./test-report.xml" закончилась с кодом возврата 1
Тогда проверка поведения фичи "НеРеализованныйШаг" с передачей параметра "-junit-out ./test-report.xml" закончилась с кодом возврата 0
И файл "./test-report.xml" существует
И файл "./test-report.xml" содержит
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@

Сценарий: Вызов шага, в реализации которого есть синтакс-ошибка

Тогда проверка поведения фичи "СинтаксическиОшибочныйШаг" с передачей параметра "-verbose off" закончилась с кодом возврата 1
Тогда проверка поведения фичи "СинтаксическиОшибочныйШаг" с передачей параметра "-verbose off" закончилась с кодом возврата 0
И в лог-файле запуска продукта есть строка "специальная синтакс-ошибка для получения бага"
И в лог-файле запуска продукта есть строка "1 Сценарий ( 0 Пройден, 1 Не реализован, 0 Сломался, 0 Не выполнялся )"
И в лог-файле запуска продукта есть строка "1 Шаг ( 0 Пройден, 1 Не реализован, 0 Сломался, 0 Не выполнялся )"

Сценарий: Вызов сценария, у которого в библиотечной реализации шага есть синтакс-ошибка

Тогда проверка поведения фичи "СинтаксическиОшибочныйШаг2" с передачей параметра "-verbose off" закончилась с кодом возврата 1
Тогда проверка поведения фичи "СинтаксическиОшибочныйШаг2" с передачей параметра "-verbose off" закончилась с кодом возврата 0
И в лог-файле запуска продукта есть строка "специальная синтакс-ошибка для получения бага"
И в лог-файле запуска продукта есть строка "1 Сценарий ( 0 Пройден, 1 Не реализован, 0 Сломался, 0 Не выполнялся )"
И в лог-файле запуска продукта есть строка "1 Шаг ( 0 Пройден, 1 Не реализован, 0 Сломался, 0 Не выполнялся )"
Expand Down
2 changes: 1 addition & 1 deletion features/core/ВыполнениеФич.feature
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
Тогда выполняется несуществующий шаг
"""

Тогда проверка поведения фичи "НесуществующийШаг" закончилась с кодом возврата 1
Тогда проверка поведения фичи "НесуществующийШаг" закончилась с кодом возврата 0
И в лог-файле запуска продукта есть строка
"""
Функциональность Просто функционал
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
Тогда выполняется несуществующий шаг
"""

Тогда проверка поведения фичи "НесуществующийШаг" закончилась с кодом возврата 1
Тогда проверка поведения фичи "НесуществующийШаг" закончилась с кодом возврата 0
И в лог-файле запуска продукта есть строка
"""
Проблемные сценарии:
Expand Down
4 changes: 2 additions & 2 deletions features/core/ПроверкаГенерации.feature
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"""
И я запустил генерацию шагов фичи "ФичаБезШагов" с передачей параметра "-verbose off"
Тогда я получил сгенерированный os-файл "ФичаБезШагов" в ожидаемом каталоге
И проверка поведения фичи "ФичаБезШагов" закончилась с кодом возврата 1
И проверка поведения фичи "ФичаБезШагов" закончилась с кодом возврата 0

Сценарий: Генерация шагов, если в представлении шагов есть сторонние символы-разделители

Expand All @@ -33,7 +33,7 @@
"""
И я запустил генерацию шагов фичи "Символы-Разделители" с передачей параметра "-verbose off"
Тогда я получил сгенерированный os-файл "Символы-Разделители" в ожидаемом каталоге
И проверка поведения фичи "Символы-Разделители" закончилась с кодом возврата 1
И проверка поведения фичи "Символы-Разделители" закончилась с кодом возврата 0

Сценарий: Перегенерация шагов в случае существования файла шагов

Expand Down
8 changes: 4 additions & 4 deletions features/core/ПропускСценария.feature
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
И в лог-файле запуска продукта отсутствует строка "я ничего не делаю"
И в лог-файле запуска продукта есть строка
"""
1 Сценарий ( 0 Пройден, 0 Не реализован, 0 Сломался, 1 Не выполнялся )
2 Шаг ( 0 Пройден, 0 Не реализован, 0 Сломался, 2 Не выполнялся )
1 Сценарий ( 0 Пройден, 1 Не реализован, 0 Сломался, 0 Не выполнялся )
2 Шаг ( 0 Пройден, 1 Не реализован, 0 Сломался, 1 Не выполнялся )
"""

Сценарий: выполнение сценария останавливается после шага пропуска, следующий сценарий выполняется нормально
Expand All @@ -26,6 +26,6 @@
И в лог-файле запуска продукта есть строка "я ничего не делаю"
И в лог-файле запуска продукта есть строка
"""
2 Сценарий ( 2 Пройден, 0 Не реализован, 0 Сломался, 0 Не выполнялся )
2 Шаг ( 1 Пройден, 0 Не реализован, 0 Сломался, 1 Не выполнялся )
2 Сценарий ( 1 Пройден, 1 Не реализован, 0 Сломался, 0 Не выполнялся )
2 Шаг ( 1 Пройден, 1 Не реализован, 0 Сломался, 0 Не выполнялся )
"""

This file was deleted.

1 change: 0 additions & 1 deletion packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,4 @@
.ВключитьФайл("LICENSE")
.ВключитьФайл("Jenkinsfile")
.ВключитьФайл("lib.config")

.ИсполняемыйФайл("src/bdd.os", "1bdd");
4 changes: 2 additions & 2 deletions src/bdd-exec.os
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@
Рез = Новый Соответствие;
Рез.Вставить(ВозможныеСтатусыВыполнения.НеВыполнялся, 0);
Рез.Вставить(ВозможныеСтатусыВыполнения.Пройден, 0);
Рез.Вставить(ВозможныеСтатусыВыполнения.НеРеализован, 1);
Рез.Вставить(ВозможныеСтатусыВыполнения.НеРеализован, 0);
Рез.Вставить(ВозможныеСтатусыВыполнения.Сломался, 2);
ВозможныеКодыВозвратовПроцесса = Новый ФиксированноеСоответствие(Рез);
КонецЕсли;
Expand Down Expand Up @@ -836,7 +836,7 @@
СтатусВыполнения = ВозможныеСтатусыВыполнения.Пройден;
Если ПропуститьСценарий Тогда
Лог.Отладка("Шаг %1 - пропускаем сценарий", АдресШага);
СтатусВыполнения = ВозможныеСтатусыВыполнения.НеВыполнялся;
СтатусВыполнения = ВозможныеСтатусыВыполнения.НеРеализован;
КонецЕсли;

Исключение
Expand Down
11 changes: 7 additions & 4 deletions src/junit-report-gen.os
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,12 @@
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();

КоличествоОшибок = СтруктураИтогов[ТипШага_Функциональность][ВозможныеСтатусыВыполнения.Сломался];
КоличествоНереализованныхТестов = СтруктураИтогов[ТипШага_Функциональность][ВозможныеСтатусыВыполнения.НеРеализован];
ВсегоТестов = СтруктураИтогов[ТипШага_Функциональность][ВозможныеСтатусыВыполнения.Пройден]
Итоги = СтруктураИтогов[ТипШага_Функциональность];

КоличествоОшибок = Итоги[ВозможныеСтатусыВыполнения.Сломался];
КоличествоНереализованныхТестов = Итоги[ВозможныеСтатусыВыполнения.НеРеализован] +
Итоги[ВозможныеСтатусыВыполнения.НеВыполнялся];
ВсегоТестов = Итоги[ВозможныеСтатусыВыполнения.Пройден]
+ КоличествоОшибок + КоличествоНереализованныхТестов;

// // ВремяВыполнения = ТекущаяДата() - ДатаНачала;
Expand Down Expand Up @@ -116,4 +119,4 @@
ТипыСостоянияJUnit = Новый ФиксированноеСоответствие(ТипыСостоянияJUnit);
КонецЕсли;
Возврат ТипыСостоянияJUnit;
КонецФункции // ПолучитьТипыСостоянияJUnit()
КонецФункции // ПолучитьТипыСостоянияJUnit()
6 changes: 4 additions & 2 deletions tasks/test.os
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@
РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич);
ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);

СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся;
СтатусыВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения();

СтатусВыполнения = СтатусыВыполнения.НеВыполнялся;
Если РезультатыВыполнения.Строки.Количество() > 0 Тогда

СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);
Expand All @@ -51,7 +53,7 @@
Сообщить(СтрШаблон("Результат прогона фич <%1>. Путь %2
|", ИтоговыйРезультатВыполнения, ПутьФич));

Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался;
Возврат ИтоговыйРезультатВыполнения <> СтатусыВыполнения.Сломался;
КонецФункции

ИмяКаталогаФайловПокрытия = "coverage";
Expand Down

0 comments on commit d2de2e8

Please sign in to comment.