组织Cython源文件及其测试(使用nosetests)

6

当我尝试将nosecython组合使用时,我无法完全按照自己的意愿使它们正常工作。 代码组织如下:

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

每个“tests.py”文件都包含两个测试,一个成功,一个失败。运行“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”找到它所需的一切?
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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接