6

在玩鼻子并尝试将其与cython结合时,我无法完全按照我想要的方式工作。代码组织如下:

.
├── setup.py
└── src
    ├── calc
    │   ├── factorial.py
    │   ├── __init__.py
    │   └── tests.py
    └── cycalc
        ├── tests.py
        └── triangle.pyx

每个tests.py包含 2 个测试,一个成功,一个失败。运行的结果setup.py nosetests是只calc/tests.py运行。如果我在此运行之后运行nosetests3 src/cycalc两个测试cycalc/tests.py。但是,如果我清理所有构建文件,它会失败,因为cycalc/triangle.pyx尚未构建到共享库中。

然后我尝试添加文件src/cycalc/__init__.py,现在setup.py nosetests拿起cycalc/tests.py但找不到所需的模块,它被放置在src.

如何安排我的 cython 源和测试以setup.py nosetests找到它需要的一切?

4

1 回答 1

1

为了nose自动运行您的测试,您应该将它们添加到一个名为 tests 的文件夹中,其中包含您的所有测试。像这样:

.
|-setup.py
|-src
|---calc
|------factorial.py
|------__init__.py
|---cycalc
|------triangle.pyx
|------__init__.py
|-tests
|---__init__.py
|---test_calc.py    
|---test_cycalc.py

这样,两个测试都将自动运行,所有内容都在同一路径中。如果您删除了需要python setup.py build在测试再次运行之前运行的构建文件。

于 2013-11-21T13:26:09.017 回答