Миграция тестов на oneunit - #143
Conversation
|
Warning Review limit reached
Next review available in: 25 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (4)
📒 Files selected for processing (17)
WalkthroughОбновлены зависимости пакета, удалены старые сценарии запуска тестов, а тесты переведены на общий контекст и изолированные проверки ошибок. ChangesТестовый контур и зависимости
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packagedef`:
- Around line 28-33: Исправьте объявление зависимости oneunit в конфигурации
пакета, указав версию 0.4.0 строковым значением вместо числового литерала, и
удалите устаревшую зависимость 1testrunner из блока РазработкаЗависитОт.
In `@tests/ВнешнееПриложение.os`:
- Around line 28-34: В tests/ВнешнееПриложение.os:28-34 восстановите в процедуре
ЗаготовкиВСтатическийИнициализаторДобавляютсяТолькоОдинРаз() двойное добавление
ТестовыйИнициализатор и проверку единственной регистрации в свежей изолированной
Поделке. В tests/ВнешнееПриложение.os:56-67 добавьте &Изолированный к сценарию с
таймером рогатки, чтобы он запускался непосредственно перед утверждениями.
In `@tests/ИзолированныеТесты.os`:
- Around line 1-2: Добавьте явное подключение пакета logos рядом с директивами
зависимостей в начале tests/ИзолированныеТесты.os, чтобы классы Логирование и
УровниЛога использовались из явно объявленной зависимости, аналогично
подключению asserts.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 0966d83c-0c18-4ccc-ab45-ca57b014103d
⛔ Files ignored due to path filters (4)
.github/workflows/qa.ymlis excluded by!**/*.yml.github/workflows/testing.ymlis excluded by!**/*.ymltests/oscript.cfgis excluded by!**/*.cfgtests/ИзолированныеТесты/oscript.cfgis excluded by!**/*.cfg
📒 Files selected for processing (15)
packagedeftasks/coverage.ostasks/test.ostasks/testIsolated.ostests/ВнешнееПриложение.ostests/ИзолированныеТесты.ostests/ИзолированныеТесты/ВЗаготовкуНельзяПрилепитьПластилин.ostests/ИзолированныеТесты/ДваЖелудяСОднимИменемКонфликтуют.ostests/ИзолированныеТесты/ДвухВерховныхЖелудейБытьНеМожет.ostests/ИзолированныеТесты/ДубСНекорректнойЗавязью.ostests/ИзолированныеТесты/ПадениеРогаткиДолжноБытьЗалогировано.ostests/ИзолированныеТесты/ПовторениеНеповторяемыхПараметровКидаетИсключение.ostests/ИзолированныеТесты/ПроверкаИнтерфейсаНапильника.ostests/ИзолированныеТесты/ПроверкаНекорректногоХарактера.ostests/Поделка.os
💤 Files with no reviewable changes (11)
- tests/ИзолированныеТесты/ПроверкаНекорректногоХарактера.os
- tests/ИзолированныеТесты/ДвухВерховныхЖелудейБытьНеМожет.os
- tasks/coverage.os
- tests/ИзолированныеТесты/ПовторениеНеповторяемыхПараметровКидаетИсключение.os
- tests/ИзолированныеТесты/ДваЖелудяСОднимИменемКонфликтуют.os
- tasks/testIsolated.os
- tests/ИзолированныеТесты/ПроверкаИнтерфейсаНапильника.os
- tasks/test.os
- tests/ИзолированныеТесты/ПадениеРогаткиДолжноБытьЗалогировано.os
- tests/ИзолированныеТесты/ДубСНекорректнойЗавязью.os
- tests/ИзолированныеТесты/ВЗаготовкуНельзяПрилепитьПластилин.os
| .РазработкаЗависитОт("1testrunner") | ||
| .РазработкаЗависитОт("asserts") | ||
| .РазработкаЗависитОт("coverage") | ||
| .РазработкаЗависитОт("fs") | ||
| .РазработкаЗависитОт("decorator", "1.7.1") | ||
| .РазработкаЗависитОт("decorator", "2.0.8") | ||
| .РазработкаЗависитОт("oneunit", 0.4.0) |
There was a problem hiding this comment.
🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win
Исправьте синтаксическую ошибку и удалите устаревшую зависимость.
Пайплайн падает при парсинге конфигурации пакета. Версия oneunit указана как число с двумя точками (0.4.0), что вызывает синтаксическую ошибку. Значение версии должно быть строкой "0.4.0".
Кроме того, поскольку PR мигрирует тестовый контур на oneunit (согласно описанию), зависимость от 1testrunner больше не используется и её следует удалить.
🛠 Предлагаемое исправление
- .РазработкаЗависитОт("1testrunner")
.РазработкаЗависитОт("asserts")
.РазработкаЗависитОт("coverage")
.РазработкаЗависитОт("fs")
.РазработкаЗависитОт("decorator", "2.0.8")
- .РазработкаЗависитОт("oneunit", 0.4.0)
+ .РазработкаЗависитОт("oneunit", "0.4.0")🧰 Tools
🪛 GitHub Actions: Контроль качества / 2_sonar _ test.txt
[error] 33-33: opm install failed: Ошибка в строке: 33,44 — Некорректно указана десятичная точка в числе
🪛 GitHub Actions: Контроль качества / sonar _ test
[error] 33-33: Ошибка в строке: 33,44. Некорректно указана десятичная точка в числе.
🪛 GitHub Actions: Производительность / 0_test (default) _ build (ubuntu-latest, default, 1testrunner).txt
[error] 33-33: opm install failed while processing module: Ошибка в строке 33,44 — некорректно указана десятичная точка в числе.
🪛 GitHub Actions: Производительность / 3_test (default) _ build (macos-latest, default, 1testrunner).txt
[error] 33-33: Ошибка в строке: 33,44. Некорректно указана десятичная точка в числе.
🪛 GitHub Actions: Производительность / test (default) _ build (macos-latest, default, 1testrunner)
[error] 33-33: Ошибка в строке 33,44: Некорректно указана десятичная точка в числе.
🪛 GitHub Actions: Производительность / test (default) _ build (ubuntu-latest, default, 1testrunner)
[error] 33-33: Ошибка в строке: 33,44. Некорректно указана десятичная точка в числе
🪛 GitHub Actions: Производительность / test (dev) _ build (windows-latest, dev, 1testrunner)
[error] 33-33: During CI step opm install -l --dev: incorrect decimal point in number (Ошибка в строке: 33,44). Code: .РазработкаЗависитОт("oneunit", 0.4.<<?>>0)
🪛 GitHub Actions: Тестирование / 0_test (default) _ build (macos-latest, default, oneunit).txt
[error] 33-33: Module error: incorrect decimal point in a number (Ошибка в строке: 33,44).
🪛 GitHub Actions: Тестирование / 3_test (default) _ build (windows-latest, default, oneunit).txt
[error] 33-33: Package definition error: Ошибка в строке 33,44 / Некорректно указана десятичная точка в числе (incorrect decimal point in a number) while processing D:\a\autumn\autumn\packagedef.
🪛 GitHub Actions: Тестирование / 4_test (dev) _ build (macos-latest, dev, oneunit).txt
[error] 33-33: Compilation error in packagedef at column 44: invalid decimal point in number (triggered by code like ".РазработкаЗависитОт("oneunit", 0.4.<<?>>0)").
🪛 GitHub Actions: Тестирование / test (default) _ build (macos-latest, default, oneunit)
[error] 33-33: Ошибка в строке 33,44: Некорректно указана десятичная точка в числе (парсинг/валидация packagedef). Процесс завершился с exit code 1.
🪛 GitHub Actions: Тестирование / test (default) _ build (ubuntu-latest, default, oneunit)
[error] 33-33: opm/package definition parsing failed: incorrect decimal point in number at line 33,44. Step failed during 'opm install -l --dev' (Process completed with exit code 1).
🪛 GitHub Actions: Тестирование / test (default) _ build (windows-latest, default, oneunit)
[error] 33-33: packagedef: Некорректно указана десятичная точка в числе. {Модуль D:\a\autumn\autumn\packagedef / Ошибка в строке: 33,44}
🪛 GitHub Actions: Тестирование / test (dev) _ build (macos-latest, dev, oneunit)
[error] 33-33: opm install failed: invalid decimal point in number. (line 33,44) Offending expression: .РазработкаЗависитОт("oneunit", 0.4.<<?>>0)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packagedef` around lines 28 - 33, Исправьте объявление зависимости oneunit в
конфигурации пакета, указав версию 0.4.0 строковым значением вместо числового
литерала, и удалите устаревшую зависимость 1testrunner из блока
РазработкаЗависитОт.
Source: Pipeline failures
| Процедура ЗаготовкиВСтатическийИнициализаторДобавляютсяТолькоОдинРаз() Экспорт | ||
|
|
||
| // Дано | ||
| Осень.ДобавитьЗаготовкуДляАвтоИнициализации("ТестовыйИнициализатор"); | ||
| Осень.ДобавитьЗаготовкуДляАвтоИнициализации("ТестовыйИнициализатор"); | ||
|
|
||
| // Когда | ||
| Заготовки = Осень.ПолучитьЗаготовкиДляАвтоИнициализации(); | ||
|
|
||
| // Тогда | ||
| Ожидаем.Что(Заготовки, "Заготовки задублированы").ИмеетДлину(0); // Не используется |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
Сценариям жизненного цикла запуска нужна свежая изолированная Поделка. После перехода на общий контекст один тест утратил подготовку, а другой стал зависеть от времени запуска.
tests/ВнешнееПриложение.os#L28-L34: восстановите двойное добавлениеТестовыйИнициализатори проверку единственной регистрации в изолированной среде.tests/ВнешнееПриложение.os#L56-L67: добавьте&Изолированный, чтобы таймер рогатки запускался непосредственно перед утверждениями.
📍 Affects 1 file
tests/ВнешнееПриложение.os#L28-L34(this comment)tests/ВнешнееПриложение.os#L56-L67
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@tests/ВнешнееПриложение.os` around lines 28 - 34, В
tests/ВнешнееПриложение.os:28-34 восстановите в процедуре
ЗаготовкиВСтатическийИнициализаторДобавляютсяТолькоОдинРаз() двойное добавление
ТестовыйИнициализатор и проверку единственной регистрации в свежей изолированной
Поделке. В tests/ВнешнееПриложение.os:56-67 добавьте &Изолированный к сценарию с
таймером рогатки, чтобы он запускался непосредственно перед утверждениями.
| #Использовать asserts | ||
| #Использовать "../src" |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Укажите явную зависимость от logos.
В тестах (например, в строках 82-83) используются классы Логирование и УровниЛога, которые предоставляются пакетом logos. Рекомендуется явно импортировать этот пакет для надежности контекста, аналогично пакету asserts.
🛠 Предлагаемое исправление
`#Использовать` asserts
+#Использовать logos
`#Использовать` "../src"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| #Использовать asserts | |
| #Использовать "../src" | |
| `#Использовать` asserts | |
| `#Использовать` logos | |
| `#Использовать` "../src" |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@tests/ИзолированныеТесты.os` around lines 1 - 2, Добавьте явное подключение
пакета logos рядом с директивами зависимостей в начале
tests/ИзолированныеТесты.os, чтобы классы Логирование и УровниЛога
использовались из явно объявленной зависимости, аналогично подключению asserts.
c0352b6 to
c70434f
Compare
Coverage Report for CI Build 29461772706Coverage increased (+0.9%) to 89.445%Details
Uncovered ChangesNo uncovered changes found. Coverage Regressions25 previously-covered lines in 4 files lost coverage.
Coverage Stats
💛 - Coveralls |
Заменили 1testrunner на oneunit: process-level изоляция для тестов, отравляющих общий прогон (конфликты желудей, падающие импорты, мутация процесс-глобального состояния), теперь делается аннотацией &Изолированный вместо ручного вынесения в отдельную папку с тестами и отдельным task-скриптом на процесс.
c70434f to
95d65b2
Compare
|

0 New Issues
0 Fixed Issues
0 Accepted Issues
No data about coverage (89.40% Estimated after merge)
Summary
1testrunnerнаoneunitкак тестовый движок (packagedef, .github/workflows/*.yml).&Изолированныйвместо ручного вынесения в отдельную папкуtests/ИзолированныеТесты/с отдельным task-скриптом на процесс — папка объединена в один файлtests/ИзолированныеТесты.os.Поделка = Новый Поделка(); Поделка.ЗапуститьПриложение();в начале почти каждого теста — теперь общая Поделка внедряется через&Пластилин.tasks/coverage.os,tasks/test.os,tasks/testIsolated.os— раннер тестов и покрытие теперь берёт на себяoneunitчерез переиспользуемый workflow (test_engine: oneunit).Test plan