2012-10-06 1 views
3

В большом файле с реструктурированным текстом со многими доктринами Python у меня есть блок тестового набора, который я хочу запустить перед каждым догом, а некоторые блоки набора тестов, которые я хочу запустить, прежде чем некоторые из доктрин , Я знаю, как это сделать с группами, но есть ли способ указать, в каком заказать блоки тестов?Укажите заказ для запуска блоков testetup в пакете doctest

Вот файл, foo.rst:

.. testsetup:: * 

    import sys 
    sys.stderr.write('testsetup *' + chr(10)) 

.. testsetup:: my-group 

    import sys 
    sys.stderr.write('testsetup my-group' + chr(10)) 

.. doctest:: my-group 

    >>> print 'test 1' 
    test 1 

Когда он запущен, я вижу:

testsetup my-group 
testsetup * 

Есть ли какой-нибудь способ заставить противоположный порядок, поэтому наиболее широко применяется настройка выполняется до групповой настройки?

ответ

1

Глядя на latest sphinx source code (см. DocTestBuilder.test_doc), ответ отрицательный, его невозможно. На данный момент все тестовые блоки собираются по порядку и назначаются группе или специальному add_to_all_groups. После этого код в add_to_all_groups добавляется к списку кода для каждой группы, в результате он всегда будет работать после кода, специфичного для группы. Похоже, было бы довольно легко написать патч, чтобы изменить это поведение, или еще лучше предоставить его в качестве опции.