IgorPetrovcm.OzonTestsManager
2.0.0
dotnet add package IgorPetrovcm.OzonTestsManager --version 2.0.0
NuGet\Install-Package IgorPetrovcm.OzonTestsManager -Version 2.0.0
<PackageReference Include="IgorPetrovcm.OzonTestsManager" Version="2.0.0" />
paket add IgorPetrovcm.OzonTestsManager --version 2.0.0
#r "nuget: IgorPetrovcm.OzonTestsManager, 2.0.0"
// Install IgorPetrovcm.OzonTestsManager as a Cake Addin #addin nuget:?package=IgorPetrovcm.OzonTestsManager&version=2.0.0 // Install IgorPetrovcm.OzonTestsManager as a Cake Tool #tool nuget:?package=IgorPetrovcm.OzonTestsManager&version=2.0.0
OzonTestsManager
Я писал эту библиотеку для себя, так как хотел тестировать свои решения задач от Ozon Techpoint, надеюсь и вам пригодиться, темболее когда на решение всех задач будет всего 5 часов 😅. Если кратко, то все что вам нужно для тестирование: скачать .zip архив с тестами от Ozon с вашей задачей, скопировать путь, и.. Все!
Оглавление
Manual
Данная библиотека предоставляет быстрое тестирование для вашего решения задачи с контекста OzonTech.
Ссылка на nuget-пакет: https://www.nuget.org/packages/IgorPetrovcm.OzonTestsManager
устанавливайте версию библиотеки 2.0.0, только в этой версии есть описанные ниже решения
Ссылка на github:
https://github.com/IgorPetrovcm/OzonTech-TestsManager
С чего начать
Прежде всего нужно скачать .zip архив со страницы вашей задачи, обычно нужно долистать в самый конец страницы:
Подключите библиотеку с помощью nuget. Далее в проекте вашего решения создайте поток класса OzonTasks
и в параметры конструктора вставим путь к архиву, путь должен быть полный:
using (OzonTasks ozonTasks = new OzonTasks(@"C:\..folders..\Downloads\4.zip"))
{
}
При открытии потока в вашем проекте появяться исходники, в папке bin/, а точнее .json-файл под названием "OzonTestsManager_history_status" и папка с тестами, в которую библиотекой был разорхивирован архив по указанному вами пути "Test_Directory". Предназначение .json-файла расскажу потом, это не так важно.
Как тестировать свое решение
В открытом потоке и будет ваше решения. Для работы с каждым заданием из архива вам предоставлен класс OzonCurrentTask
, который и хранит строки задания - "тесты", и ответы на них.
Здесь мы получем task
из коллекции OzonCurrentTask
с помощью итератора GetTasks
:
using (OzonTasks ozonTasks = new OzonTasks(@"C:\..folders..\Downloads\4.zip"))
{
foreach (OzonCurrentTask task in ozonTasks.GetTasks())
{
}
}
[Подробнее о свойствах OzonCurrentTask]
Действия дальше могут показаться бессмысленными, но я не смог это сделать короче. Здесь мы получаем каждый тест или строку из задания и уже работаем с ней:
foreach (OzonCurrentTask task in ozonTasks.GetTasks())
{
foreach (string test in task)
{
//ваше решения
}
}
На практике
Представим такое задание: Дана строка чисел, отсортируйте числа в ней по возрастанию.
На вход получаем:
2 3 9 1 4
9 1
0 9 3 6
На выход должно получиться:
1 2 3 4 9
1 9
0 3 6 9
Вот как это решить и протестировать с помощью библиотеки OzonTestsManager
:
// Путь к скачанному архиву с заданиями: C:\Downloads\test.zip
using (OzonTasks tasks = new OzonTasks("C:\\Downloads\\test.zip"))
{
foreach (OzonCurrentTask task in tasks)
{
foreach (string test in task)
{
Array.Sort(test.ToArray());
task.yourResult.Add(test);
}
}
}
Просто добавьте ваше решение теста в yourResult
для текущего task
, и все🎉!
Если у вас не получаеться результат теста в виде строки, например, коллекция int то укажите это в методе Add<T>(IEnumerable yourResult)
вашего yourResult
:
task.yourResult.Add<int>(myArray)
По итогу
По завершению потока OzonTasks
, вызывается его реализация Dispose()
, которая сама, любезно выведет в консоль результаты ваших решений.
Пример отчета без ошибок:
Пример отчета с ошибками в вашем решении:
Контакты
Telegram: @IGOR_PETR
GitHub: https://github.com/IgorPetrovcm
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Пользоваться библиотекой стало намного проще, написан класс OzonTasks отвечающий за все и за взаимодействие с разработчиком