玩 nose 时并尝试将其与 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
找到它需要的一切?
最佳答案
要让 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
,然后测试才能再次运行。
关于python - 组织 cython 源文件及其测试(使用 nosetests),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19196483/