Паралельный запуск тестов dotnetcore, nunit3, seleniumc#

а что такое headless mode?
у нас гитлаб, и если агентов запускать просто через экзешник, то тесты выполняются на моём рабочем столе; если как службу, то в каком-то другом пользовательском пространстве. При этом тесты тянут расширение моего монитора и браузер вроде как реально запускается

может быть, у меня не тянуло разрешение виртуалки, я в подробности не вникал

Я запускаю локально, не CI

  • у вас 6 часов тестов
  • нет параллелизации
  • нет ci

что-то здесь не чисто

так пост ведь как раз о том, что это не устраивает

Ну вот так вот сразу, вместо совета и сочувствия :slight_smile:

Добавился еще один проект тестов и решили держать его в общем репозитории, так как он часть функционала. исепользует общие методы, как основу. Результат 6 часов. Ну может быть утрирую, но 6 часов скоро будет.
CI есть, билдится проект, деплой на билд машину, vstest ранит тест, генерится allure report
Сейчас отработала на не большом проекте запуск docker selenoid на виртуалке с генерацией отчета.
Теперь занялась этим динозвром. И проблема теперь в этой, судя из результатов поиска в гугл, мелочи, казалось бы.

@lelik

вы можете положить на gist изолированный case демонстрирующий ощибку пожалуйста

что то знакомое…

Looks like the ZipStorer code needs encoding 437. .NET core removes built-in support for many less common encodings, including 437. T

3 лайка

Добавление перед загрузкой файлов Encoding.RegisterProvider(CodePagesEncodingProvider.Instance) . из пакета System.Text.Encoding.CodePages решает эту проблему

1 лайк

Спасибо всем за помощь. Работает!

Суммируя все выше описанное, сделаю вывод для “потомков”

  1. Для поиска файла в контейнере нужно добавить resultDriver.FileDetector = new LocalFileDetector(); Если файл есть - пояивтся ошибка ‘System.IO.Compression.ZipStorer’
    2.Для решения ошибки : ‘System.IO.Compression.ZipStorer’ - Устанавливается библиотека [System.Text.Encoding.CodePages] и добавляется Encoding.RegisterProvider(CodePagesEncodingProvider.Instance) перед загрузкой файла.
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)
Part.ModelFile.SendKeys(Utils.GetFileFullPath(manuffilepath));

Сейчас посмотрел на решение, вспомнил, что у самого было похожая проблема, когда перевел тесты на .NetCore 2.1. И тоже эта строчка (плюс установленные пакеты):

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)

помогли с решением проблемы (используется BrowserStack).

Привет, а при таком подходе скорость тестов не замедляется? Я например делал параллелизацию при помощи Nunit Parallelize, у меня 4 ядра, тесты для 4х потоков замедлились приблизительно в 4 раза, для двух потоков на 50%. Замедление происходит если я просто локально запускаю, или с помощью Selenoid, который у меня на машине установлен. Не сталкивался с такой проблемой?