Где настоящий проект на Python, который будет использоваться в качестве примера для модульного тестирования? - PullRequest
6 голосов
/ 17 декабря 2008

Я ищу проект на Python, который можно использовать в качестве примера для копирования дизайна частей модульного теста.

Проект должен иметь следующие функции:

  1. его код почти полностью проверен модулем
  2. код распространяется во многих пакетах, существует более одного уровня пакетов
  3. весь тест можно запустить с помощью одной команды, например, с python test.py

Мне нужно, чтобы проект использовал одно и то же соглашение о тестировании для всего кода. Я видел весь проект Python, но различные пакеты были протестированы с различными соглашениями. Например, пакеты setuptools используют специальную адаптацию библиотеки unittest, тогда как другие пакеты этого не делают.

Мне нужно, чтобы в проекте не использовалась специальная или специально настроенная среда тестирования, потому что я хочу повторно использовать ее архитектуру тестирования в моем проекте.

Ответы [ 5 ]

4 голосов
/ 20 декабря 2008

Django - это чистый проект, в котором есть хороший набор юнит-тестов.

Посмотрите , как они предлагают вам протестировать ваши собственные проекты.

Посмотрите на код модульного тестирования самой платформы.

4 голосов
/ 17 декабря 2008

Может быть Нос сам?

1 голос
/ 17 декабря 2008

Ну, ваши спецификации указывают прямо на несколько известный проект с открытым исходным кодом, Python Library . Взгляните на python / trunk / Lib / test / regrtest.py , который найдет все модули с именем "test_ *" в тестовой директории и запустит их.

0 голосов
/ 08 сентября 2015

Вы можете проверить источник Python. Большая часть написана на python. специально модули unittest.

Организация модуля Python и, в частности, unittest является черным искусством. Он напоминает мне о смеси perl (странные недокументированные обходные пути для каждой базовой вещи - в руководстве по unittest никогда даже не показано, как импортировать внешний модуль) и java (ограничения директив и именования)

взгляните на настройку модульного теста для модуля unittest . (нет просмотра исходного кода, вам нужно hg clone этот URL)

вот часть setup.py для запуска юнит-тестов, кроме всего остального:

# above here, juggle paths
from setuptools import setup
params['entry_points'] = {
    'console_scripts': [
        'unit2 = unittest2.__main__:main_',
    ],
}

params['test_suite'] = 'unittest2.collector'

setup(**params)

и даже все, что они сделали, все еще недостаточно, чтобы просто запустить setup.py test. Вы узнаете, что большинство команд уже отказались от того, что вы просили, и просто добавили test_run.py или что-то подобное в проект. Я знаю все проекты, в которых я участвовал.

Взгляните также на ответ «Нос» выше, он хороший, их setup.py очень чист, несмотря на некоторую увлеченность поддержкой 2, 3, 2to3. это проект, который призван сделать юнит-тест (и общее тестирование) более простым и удобным. ну, даже у них есть скрипт selftest.py в корне проекта, чтобы попытаться запустить тесты.

0 голосов
/ 17 декабря 2008

Сначала прочитайте о unittest . Документация содержит примеры.

Во-вторых, поскольку вам нужны пакеты (не модули), список короче. В дистрибутиве Python 2.5 есть 15 пакетов. Выберите один наугад. Вот подмножество, которое может соответствовать некоторым вашим критериям.

  • bsddb: 7 модулей - множество тестов - test_all.py

  • ctypes: 4 модуля - тесты - runtests.py

  • distutils: много модулей - тесты - test_dist.py

  • электронная почта: много модулей - тесты - test_email.py

  • sqlite3 - 2 модуля - тесты - (неясно, есть ли общий тест, мне надоело смотреть)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...