t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как запустить тесты с конкретных папок с помощью nosetests?

Теги: #<Tag:0x00007f7488d44230> #<Tag:0x00007f7488d44140>

Помогите, пожалуйста, запустить тесты с разных папок
У меня в проекте есть такие папки

  • test_temp
    —test_folder_1
    —test_folder_2
    —test_folder_3
    —test_folder_4
  • runner.py

Я могу запустить все тесты, вот так (runner.py)

import nose
if name == ‘main’:
nose.run(argv=["", “test_temp”])

Но как запустить тесты только с test_folder_2 и test_folder_3?

А запускать нужно программно или через командную строку?
Потому как если такая структура присутствует, то можно запускать конкретные тесты из папки так:

nosetests test_temp/test_folder_1

Ну если же нужно программно, то это будет так

import nose
nose.run(argv=["-v", "test_temp/test_folder_1"])

Программно, но из нескольких папок.

Вот так типа, но не работает

import nose
nose.run(argv=["-v", ("test_temp/test_folder_1",  "test_temp/test_folder_4")])
import nose
nose.run(argv=["-v", "test_temp/test_folder1", "test_temp/test_folder2"])

Можно сделать вот так:

import nose
import sys

nose.run(argv=[sys.argv[0], '-v'], defaultTest=["test_temp/test_folder1", "test_temp/test_folder2"])

argv=[sys.argv[0] крайне желателен. Если хочется всегда иметь подробный вывод, то можно сделать argv=[sys.argv[0], '-v'], но я бы argv=[sys.argv[0], '-v'] заменил на argv=sys.argv + ['-v'], тогда мы в nose передадим все ключи, которые передали в наш скрипт + гарантируем подробный вывод. Но тут уже зависит от ситуации и потребностей.

Подробнее про ключи можно почитать в официальной документации http://nose.readthedocs.org/en/latest/api/core.html

defaultTest: Tests to load (default: ‘.’)
argv: Command line arguments (default: None; sys.argv is read)