Skip to content

Commit 36e6900

Browse files
committed
fix tests
1 parent 76deb20 commit 36e6900

26 files changed

Lines changed: 371 additions & 221 deletions
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
@echo off
2+
setlocal enabledelayedexpansion
3+
4+
:: Search for the 1c-enterprise-ring directory
5+
set "ring_dir="
6+
for /f "delims=" %%d in ('dir /b /ad /o-d "%ProgramFiles%\1C\1CE\components\1c-enterprise-ring-*-x86_64" 2^>nul') do (
7+
if not defined ring_dir set "ring_dir=%ProgramFiles%\1C\1CE\components\%%d"
8+
)
9+
10+
if not defined ring_dir (
11+
echo ::error::Could not find ring directory in %ProgramFiles%\1C\1CE\components\
12+
) else (
13+
echo %ring_dir%>> "%GITHUB_PATH%"
14+
)
15+
16+
:: Search for the 1cedtcli directory (optional)
17+
set "edtcli_dir="
18+
for /f "delims=" %%d in ('dir /b /ad /o-d "%ProgramFiles%\1C\1CE\components\1c-edt-*-x86_64" 2^>nul') do (
19+
if exist "%ProgramFiles%\1C\1CE\components\%%d\1cedtcli.exe" (
20+
if not defined edtcli_dir set "edtcli_dir=%ProgramFiles%\1C\1CE\components\%%d"
21+
)
22+
)
23+
24+
:: Add edtcli_dir to path if found
25+
if not defined edtcli_dir (
26+
echo ::error::Could not find 1cedtcli directory in %ProgramFiles%\1C\1CE\components\
27+
) else (
28+
echo %edtcli_dir%>> "%GITHUB_PATH%"
29+
)
30+
31+
echo ::group::Successfully added to PATH
32+
echo %ring_dir%
33+
if defined edtcli_dir echo %edtcli_dir%
34+
echo ::endgroup::
35+
exit /b 0
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/bin/bash
2+
3+
# Find and symlink 1c-enterprise-ring (required)
4+
ring_path=$(find /opt/1C/1CE/components -name ring -type f -print -quit 2>/dev/null)
5+
if [ -z "$ring_path" ]; then
6+
echo "::error::Could not find ring executable in /opt/1C/1CE" >&2
7+
exit 1
8+
fi
9+
sudo ln -sfn "$(dirname "$ring_path")" /opt/1C/1CE/components/1c-enterprise-ring
10+
11+
# Find and symlink 1cedtcli (optional)
12+
edtcli_path=$(find /opt/1C/1CE/components -name 1cedtcli -type f -print -quit 2>/dev/null)
13+
if [ -n "$edtcli_path" ]; then
14+
sudo ln -sfn "$(dirname "$edtcli_path")" /opt/1C/1CE/components/1cedtcli
15+
fi
16+
17+
# Update PATH (only add directories that exist)
18+
PATH="/opt/1C/1CE/components/1c-enterprise-ring:$PATH"
19+
if [ -d "/opt/1C/1CE/components/1cedtcli" ]; then
20+
PATH="/opt/1C/1CE/components/1cedtcli:$PATH"
21+
fi
22+
23+
echo "::group::Successfully added to PATH"
24+
echo "/opt/1C/1CE/components/1c-enterprise-ring"
25+
[ -d "/opt/1C/1CE/components/1cedtcli" ] && echo "/opt/1C/1CE/components/1cedtcli"
26+
echo "::endgroup::"

.github/workflows/testing.yml

Lines changed: 118 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,31 @@ name: Тестирование
77
on: [push, pull_request]
88

99
jobs:
10-
build:
10+
test:
1111
runs-on: ${{ matrix.os }}
1212
strategy:
13-
fail-fast: false
1413
matrix:
15-
os: [ubuntu-latest]
16-
oscript_version: ['1.8.3']
17-
14+
oscript_version: ['1.9.2']
15+
v8_version: ['8.3.21.1624', '8.3.24.1691']
16+
edt_version: ['2023.3.6']
17+
os: [windows-latest, ubuntu-22.04]
18+
locale: ['ru_RU']
19+
fail-fast: false
1820
steps:
19-
# Загрузка проекта
21+
- name: Set Russian locale
22+
if: matrix.os == startsWith(matrix.os, 'windows')
23+
run: |
24+
powershell -Command "Set-WinUILanguageOverride -Language ru-RU"
25+
powershell -Command "Set-WinUserLanguageList ru-RU -Force"
26+
powershell -Command "Set-Culture ru-RU"
27+
powershell -Command "Set-WinSystemLocale ru-RU"
28+
2029
- name: Актуализация
21-
uses: actions/checkout@v2
30+
uses: actions/checkout@v4.2.2
2231

2332
# Установка OneScript конкретной версии
2433
- name: Установка OneScript
25-
env:
26-
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
27-
uses: otymko/setup-onescript@v1.0
34+
uses: otymko/setup-onescript@v1.5
2835
with:
2936
version: ${{ matrix.oscript_version }}
3037

@@ -33,16 +40,105 @@ jobs:
3340
run: |
3441
opm install opm
3542
opm install --dev
36-
opm install 1testrunner
37-
opm install 1bdd
38-
opm install notify
39-
opm install coverage
40-
41-
# Задача тестирования, в результате ожидается успешное выполнение
42-
- name: Тестирование Unit
43-
run: oscript ./tasks/test.os true
43+
opm install gitsync
4444
45-
# - name: Тестирование Integrated
46-
# run: |
47-
# docker run -e OSCRIPT_VERSION=${{ matrix.oscript_version }} -v $(pwd):/work_dir harmit/ci-image sh -c 'cd /work_dir; sh /work_dir/travis-ci.sh; exit'
48-
# grep 'Результат прогона тестов <Да>' /tmp/test.log
45+
- name: Подготовка окружения (Linux)
46+
if: startsWith(matrix.os, 'ubuntu')
47+
run: |
48+
sudo apt-get update
49+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y locales libwebkit2gtk-4.0-37
50+
sudo localedef -i ${{ matrix.locale }} -c -f UTF-8 -A /usr/share/locale/locale.alias ${{ matrix.locale }}.UTF-8
51+
52+
- name: Установка libenchant1c2a (Linux)
53+
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.v8_version, '8.3.21')
54+
run: |
55+
sudo echo "deb http://cz.archive.ubuntu.com/ubuntu focal main universe" | sudo tee -a /etc/apt/sources.list
56+
sudo apt-get update
57+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libenchant1c2a
58+
59+
- name: Установка wine (требуется для Tool1CD)
60+
if: startsWith(matrix.os, 'ubuntu')
61+
run: |
62+
sudo dpkg --add-architecture i386
63+
sudo apt update
64+
sudo apt install wine -y
65+
66+
- name: Установка платформы 1С
67+
uses: ovcharenko-di/onec-setup-action@bump-actions-cache
68+
with:
69+
type: onec # Тип устанавливаемого приложения
70+
onec_version: ${{ matrix.v8_version }}
71+
cache: true
72+
cache_distr: true
73+
env:
74+
ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }}
75+
ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }}
76+
77+
- name: Установка Java
78+
uses: actions/setup-java@v4
79+
with:
80+
distribution: 'temurin'
81+
java-version: '11'
82+
83+
- name: Установка EDT
84+
uses: ovcharenko-di/onec-setup-action@bump-actions-cache
85+
with:
86+
type: edt # Тип устанавливаемого приложения
87+
edt_version: ${{ matrix.edt_version }}
88+
cache: true
89+
cache_distr: true
90+
env:
91+
ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }}
92+
ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }}
93+
94+
- name: Настройка EDT (Windows)
95+
if: startsWith(matrix.os, 'windows')
96+
run: .github/scripts/add-1cedtcli-ring-to-path.bat
97+
98+
- name: Настройка EDT (Linux)
99+
if: startsWith(matrix.os, 'ubuntu')
100+
run: .github/scripts/add-1cedtcli-ring-to-path.sh
101+
102+
- name: Установка лицензии (Linux)
103+
if: startsWith(matrix.os, 'ubuntu')
104+
run: |
105+
# Создание каталога
106+
sudo mkdir -p /var/1C/licenses
107+
108+
# Запись лицензии в файл
109+
echo "${{ secrets.ONEC_LICENCE }}" | sudo tee /var/1C/licenses/licence.lic > /dev/null
110+
111+
# Назначение прав
112+
sudo chmod 777 -R /var/1C/licenses
113+
shell: bash
114+
env:
115+
ONEC_LICENCE: ${{ secrets.ONEC_LICENCE }}
116+
117+
- name: Установка лицензии (Windows)
118+
if: startsWith(matrix.os, 'windows')
119+
run: |
120+
mkdir "C:\ProgramData\1C\licenses" -Force
121+
echo $Env:ONEC_LICENCE | Out-File -FilePath "C:\ProgramData\1C\licenses\licence.lic" -Encoding ascii
122+
shell: pwsh
123+
env:
124+
ONEC_LICENCE: ${{ secrets.ONEC_LICENCE }}
125+
126+
- name: Установка gitsync (локально)
127+
run: opm run install-gitsync
128+
129+
- name: Тестирование
130+
uses: coactions/setup-xvfb@v1
131+
env:
132+
EDT_VERSION: ${{ matrix.edt_version }}
133+
GITSYNC_V8VERSION: ${{ matrix.v8_version }}
134+
with:
135+
run: oscript ./tasks/test.os
136+
137+
- name: Publish Test Report
138+
if: always()
139+
uses: mikepenz/action-junit-report@v5
140+
with:
141+
report_paths: '**/build/reports/*.xml'
142+
fail_on_failure: true
143+
comment: true
144+
check_name: 'Результаты тестов. ОС: ${{ matrix.os }}. Версия 1С: ${{ matrix.v8_version }}. Версия OneScript: ${{ steps.extract_oscript_version.outputs.version }}'

.gitignore

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ build/*
44

55
bin/gitsync/*
66
bin/gitsync.exe
7-
bin/gitsync.bat
7+
bin/build_gitsync.bat
88
tests/*.xml
99

10-
exec/*.log
11-
10+
exec.log
1211
bdd-log*.xml
1312

1413
.enabled-plugins

CONTRIBUTING.md

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,26 @@
22

33
Доработка проводится по git-flow. Жду ваших PR.
44

5-
## Первоначальная настройка
5+
## Требования к окружению
66

7-
- Необходимо предварительно выполнить команду
8-
- `opm run install-gitsync`
9-
- он устанавливает версию gitsync в каталог bin
10-
- После необходимо собрать и установить плагины из исходников
11-
- `opm run testing-build`
7+
- Установленная Платформа 1С
8+
- Установленная EDT
9+
10+
## Запуск тестов
11+
12+
- Установить значение переменной GITSYNC_V8VERSION, например:
13+
- `set GITSYNC_V8VERSION=8.3.21` # Windows
14+
- `export GITSYNC_V8VERSION=8.3.21` # Linux
1215

13-
А вот потом можно запускать тесты )
16+
По умолчанию версию платформы выберет библиотека v8find
1417

15-
- через команду `opm test`
18+
- Установить значение переменной EDT_VERSION, например:
19+
- `set EDT_VERSION=2023.3.6` # Windows
20+
- `export EDT_VERSION=2023.3.6` # Linux
21+
22+
По умолчанию используется версия 2022.2.5
23+
24+
- Необходимо предварительно выполнить команду, которая устанавливает gitsync в каталог bin
25+
- `opm run install-gitsync`
26+
- После чего можно запускать тесты
27+
- `opm test`

bin/v8unpack/v8unpack.exe

-64 KB
Binary file not shown.

bin/v8unpack/zlib1.dll

-58.5 KB
Binary file not shown.

features/check-authors.feature

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,26 @@
77

88
Контекст: Тестовый контекст check-authors
99
Когда Я очищаю параметры команды "gitsync" в контексте
10-
И Я устанавливаю рабочей каталог во временный каталог
10+
И Я устанавливаю рабочий каталог во временный каталог
1111
И Я создаю новый объект ГитРепозиторий
1212
И Я устанавливаю путь выполнения команды "gitsync" к текущей библиотеке
1313
И Я устанавливаю текущие плагины
1414
И Я создаю временный каталог и сохраняю его в переменной "КаталогХранилища1С"
1515
И я скопировал каталог тестового хранилища конфигурации в каталог из переменной "КаталогХранилища1С"
1616
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников"
1717
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников"
18-
И Я создаю тестовой файл AUTHORS
18+
И Я создаю тестовый файл AUTHORS
1919
И Я записываю "0" в файл VERSION
2020
И я включаю отладку лога с именем "oscript.app.gitsync"
2121
И Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория"
2222
И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
23-
И Я добавляю параметр "-v" для команды "gitsync"
23+
# И Я добавляю параметр "-v" для команды "gitsync"
2424
И Я добавляю параметр "sync" для команды "gitsync"
2525
И Я выключаю все плагины
2626
И Я включаю плагин "check-authors"
2727

2828
Сценарий: Cинхронизация c простым использованием
29-
Допустим Я создаю неполный тестовой файл AUTHORS
29+
Допустим Я создаю неполный тестовый файл AUTHORS
3030
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
3131
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
3232
Когда Я выполняю команду "gitsync"

features/check-comments.feature

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@
77

88
Контекст: Тестовый контекст check-comments
99
Когда Я очищаю параметры команды "gitsync" в контексте
10-
И Я устанавливаю рабочей каталог во временный каталог
10+
И Я устанавливаю рабочий каталог во временный каталог
1111
И Я создаю новый объект ГитРепозиторий
1212
И Я устанавливаю путь выполнения команды "gitsync" к текущей библиотеке
1313
И Я устанавливаю текущие плагины
1414
И Я создаю временный каталог и сохраняю его в переменной "КаталогХранилища1С"
1515
И я скопировал каталог тестового хранилища конфигурации в каталог из переменной "КаталогХранилища1С"
1616
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников"
1717
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников"
18-
И Я создаю тестовой файл AUTHORS
18+
И Я создаю тестовый файл AUTHORS
1919
И Я записываю "0" в файл VERSION
2020
И я включаю отладку лога с именем "oscript.app.gitsync"
2121
И Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория"
2222
И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
23-
И Я добавляю параметр "-v" для команды "gitsync"
23+
# И Я добавляю параметр "-v" для команды "gitsync"
2424
И Я добавляю параметр "sync" для команды "gitsync"
2525
И Я выключаю все плагины
2626
И Я включаю плагин "check-comments"

0 commit comments

Comments
 (0)