При параллельном тестировании не происходит запись в файл, что делать?

Ссылка скопирована
1 ответ

Если запускаю тесты по одному, то файл с данными спокойно создается, однако если я делаю это параллельно, то ничего не работает. Тесты не падают, все проходит удачно, но txt нет.

вот упрощённый код моих тестов

def test_create45(web_browser):     current_time = datetime.datetime.now()     time.sleep(4)     file = open('output_2.txt', 'w+')     text_to_write = f'n № 2 время создания - {current_time}'     file.write(text_to_write)     file.close()  def test_create46(web_browser):     current_time = datetime.datetime.now()     with open("otus.txt", "w+") as file:         file.write("hello world")

Дополнительно:

Наверное идет конкурентный доступ к текстовому файлу. В результате один процесс или поток файл
закрывает раньше и дальше ... надо проверять. Семантика файловых операций в Windows и Linux
сильно отличается.

Thread-Safe Write to File in Python

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Дмитрий К. Ответ

Для начала, необходимо убедиться, что ваш код правильно настроен для параллельного тестирования и записи в файл.

1. Убедитесь, что у вас правильно настроены настройки параллельного тестирования. Проверьте, что вы используете правильные инструменты и библиотеки для запуска тестов параллельно. Например, для PHP можно использовать PHPUnit с опцией --process-isolation.

2. Проверьте ваш код на наличие блокировок записи в файл. Если вы используете один и тот же файл для записи результатов тестов из разных потоков, возможно, что происходит конфликт при попытке одновременной записи в файл.

3. Попробуйте использовать механизмы синхронизации, такие как мьютексы или семафоры, чтобы предотвратить конфликты записи в файл.

4. Также, убедитесь, что у вас достаточно прав для записи в файл. Проверьте права доступа к файлу и папке, в которой он находится.

5. Если ничто из вышеперечисленного не помогло, попробуйте использовать другой способ записи результатов тестирования, например, сохранение результатов в базу данных или использование отдельных файлов для каждого потока.

Надеюсь, эти рекомендации помогут вам решить проблему с записью в файл при параллельном тестировании. Если у вас остались дополнительные вопросы, не стесняйтесь задавать их.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно