Comments 11
А можете поделиться своим опытом организации кода в своих проектах на Python-е по части тестов? Какая у Вас структура папок? Как организуете тест-пакеты? Оформляете ли тест-пакеты в виде полноценных пакетов, т.е. вместе с setup.py для каждого? И др. вопросы. Ведь каждый разработчик пробует разные подходы и какие-то отмирают, а какие-то выживают.
Я тесты пишу в файле tests.py в том же пакете, который тестируется. Если тестов много и их можно сгруппировать, то создаю пакет tests внутри тестируемого пакета, и уже в нём модули test_foo.py, test_bar.py и т.д. В общем я держу тесты ближе «к телу». Если где то можно обойтись маленьким doc-тестом внутри кода, то я так и делаю.
Еще материалы по теме
www.slideshare.net/imankulov/pytest-testing
habrahabr.ru/company/yandex/blog/242795
www.slideshare.net/imankulov/pytest-testing
habrahabr.ru/company/yandex/blog/242795
Лучший обзор Пайтеста, что приходилось видеть. Спасибо.
Для unittest используется вызов функции main. Поэтому запуск имеет вид «python unittest_example.py». При этом для запуска набора тестов приходится отдельно объединять их в TestSuit и запускать через него.
Нет, совсем не обязательно объединять.
Пример
[guest@localhost t]$ ls
test_file1.py test_file2.py
[guest@localhost t]$
[guest@localhost t]$ cat test_file1.py
#!/usr/bin/env python3
import unittest
class Test1(unittest.TestCase):
def test_1(self):
self.assertTrue(True)
if __name__ == '__main__':
unittest.main()
[guest@localhost t]$
[guest@localhost t]$ python3 -m unittest -v
test_1 (test_file1.Test1) ... ok
test_2 (test_file2.Test2) ... ok
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
[guest@localhost t]$
Она не только файлы обнаруживает и тесты в них, но и предоставляет механизм раскрытия директорий.
Спасибо, весьма полезно.
Читаю в который раз статью, как ту что от Yandex, так и эту. Но так и не нахожу ответа на вопрос:
Чем все-таки лучше pytest чем стандартный модуль unittest из стандартной библиотеки?
Если кол-вом кода, то многое решается путем написания снипетов к Вашей среде разработки или любимому редактору. Если же удобство запуска тестов, то есть общеизвестный nosetests, который более чем хорошо справляется с задачей запуска тестов.
Чем все-таки лучше pytest чем стандартный модуль unittest из стандартной библиотеки?
Если кол-вом кода, то многое решается путем написания снипетов к Вашей среде разработки или любимому редактору. Если же удобство запуска тестов, то есть общеизвестный nosetests, который более чем хорошо справляется с задачей запуска тестов.
def test_3_that_uses_all_fixtures(manually_session_resource, function_resource):
print("test_2_that_does_not")
Думаю, здесь опечатка.
def test_strange_string_func_with_idfn(param_test_idfn):
(input, expected_output) = param_test_idfn
result = strange_string_func(input)
print(f'input: {input}, output: {result} expected: {expected_output}')
assert result == expected_output
В коде примера опечатка. Вместо param_test нужно использовать param_test_idfn.
Sign up to leave a comment.
PyTest