金字塔在主包之外运行测试

时间:2014-03-05 23:49:25

标签: python unit-testing python-unittest

我是python的新手,所以我认为这更像是一个理解的东西,我因为这个而无法工作。

我首先创建了一个新的Pyramid项目,以便我的目录结构如下所示:

MyProject /
    - myproject /
        - static
        - templates
        - tests.py
        - views.py
    - development.ini
    - production.ini
    - setup.py
    - setup.cfg

然而,我将很多业务/服务逻辑添加到根包目录下的myprojectlib包中,并且还创建了一个测试包,如下所示:

MyProject /
    - myproject /
        - tests.py
        - views.py
    - myprojectlib /
        - user_service.py
    - tests /
        - user_tests.py
    - setup.py

我已将 init .py文件添加到'myprojectlib'和'tests'文件夹中以使其成为包,但我似乎无法获取user_tests.py文件(以及随后的文件)测试代码)包含在python setup.py test命令中。仅包含myproject / tests.py测试。

到目前为止,我的user_tests.py文件包含一个测试:

import unittest

class UserTests(unittest.TestCase):

    def test_user_can_register(self):

        #code removed for example

我如何告诉python在/ tests目录中查找测试?

我看了一下这篇文章,似乎我正在做的一切建议:Having tests in multiple files

提前感谢您的任何帮助:)

干杯, 贾斯汀

1 个答案:

答案 0 :(得分:1)

setup的{​​{1}}来电中,尝试添加以下内容:

setup.py

因为那是包含测试的目录。我通常构建我的新样式包,并使用 test_suite="tests", 进行测试,因此我的nose中没有。添加该声明后,现在在调用setup.py时执行测试。

来源:https://pythonhosted.org/setuptools/setuptools.html#test-build-package-and-run-a-unittest-suite

再次确保test目录中有python setup.py test,否则setuptools test runner会抱怨缺少__init__.py模块。