Запуск Python модулей (не методов) в заданном порядке c для Selenium - PullRequest
0 голосов
/ 09 марта 2020

Можно ли запустить Python модули (файлы .py, НЕ методы), перечисленные в testNG-подобном python или файле конфигурации (или любым другим способом), для запуска в определенном / указанном порядке?

Я знаю, что каждый тестовый случай должен быть полностью автономным, но мне нужно запустить

  1. Registration (которая будет получать ключ БД для завершения процесса регистрации) - отдельный файл .py, необходимо сначала запустить
  2. Включить некоторые настраиваемые поля - отдельный файл .py (желательно несколько файлов .py, если это возможно, чтобы один файл не был слишком большим), необходимо запустить второй
  3. Затем запустите все другие тестовые случаи без какого-либо порядка - много .py файлов, каждый файл является тестовым примером

Этот порядок имеет решающее значение, в противном случае все не получается

Это можно сделать с помощью Java и testNG. xml, используя preserve-order="true", но я не могу найти никакого решения для Python, особенно изучил Хоботок

Любая помощь приветствуется

1 Ответ

0 голосов
/ 09 марта 2020

Тесты, выполненные с помощью , должны быть спроектированы таким образом, чтобы они могли работать независимо. Чистые модульные тесты предлагают то преимущество, что когда они терпят неудачу, они часто показывают, что именно пошло не так. В случае функциональных тестов или системных тестов с использованием фреймворка unittest их невозможно выполнить без их упорядочения, поскольку Selenium автоматизирует контекст просмотра . Чтобы добиться упорядочения, по крайней мере, вам нужно использовать лучшее соглашение об именах для имен тестов, например: test_1, test_2, test_3, et c, и это работает, потому что тесты отсортированы по отношению к встроенный порядок для строк. Пример:

  • Код:

    import unittest
    
    class Test(unittest.TestCase):
    
        def test_1(self):
        print("I'm in test 1")
    
        def test_2(self):
        print("I'm in test 2")
    
        def test_3(self):
        print("I'm in test 3")
    
    if __name__ == "__main__":
        unittest.main()
    
  • Консольный вывод:

    Finding files... done.
    Importing test modules ... done.
    
    I'm in test 1
    I'm in test 2
    I'm in test 3
    ----------------------------------------------------------------------
    Ran 3 tests in 0.001s
    
    OK
    
...