Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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

nose
python
Теги: #<Tag:0x00007f7b6d597b40> #<Tag:0x00007f7b6d597a00>

(Romanchuk Katerina) #1

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

  • 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?


(Mykhailo Poliarush) #2

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

nosetests test_temp/test_folder_1

(Mykhailo Poliarush) #3

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

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

(Romanchuk Katerina) #4

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

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

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

(Mykhailo Poliarush) #5
import nose
nose.run(argv=["-v", "test_temp/test_folder1", "test_temp/test_folder2"])

#6

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

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)