我使用诗歌来构建带有cython扩展的包。现在我想为它编写测试(最好使用nosetest)。问题是我需要预编译二进制文件,通常使用setup.py build_clib build_ext --inplace
对我来说,最好的解决方案是运行测试,而不在目录中创建额外的.py
或.sh
文件,因为我已经有了build.py
。在虚拟环境中安装包后运行测试是可以的,就像它是在readthedocs服务器上实现的一样
我还熟悉了taskipy
,所以我的pyproject.toml
中的一些bash命令也可以。欢迎使用pyproject.toml
的任何其他软件包
也许有一些诗歌的钩子,因为它在创建.whl
分发文件时会使诗歌变得通俗易懂
在此方面的任何帮助都将不胜感激
UPDTox看起来像是合适的工具,但它在目录中没有看到pyproject.toml
。非常欢迎在软件包或教程中链接到带有tox和cython的repos
下面是对已接受答案(pytest示例)的一个轻微修改,当src代码和测试代码在不同的目录中分开时,它现在也可以工作
例如
如果扩展是发行版的一部分,那么除了运行
poetry install
-poetry
将在项目的可编辑安装中构建扩展之外,您不需要做任何事情在其他情况下,您可以在测试中嵌入调用
distutils
命令,作为套件设置/拆卸的一部分。我对nose
不是很熟悉,但这里有一个简单的例子。假设我有一个fib.pyx
(这是Cython书中的一个例子):一个
test_fib.py
模块,用于构建fib
库并在测试成功时将其删除:您可能正在自定义
build.py
中自定义setup_kwargs
。要重用此代码,请调整dist
初始化,例如:pytest
示例使用
pytest
可以更方便地组织事情。创建一个名为conftest.py
的文件,并将安装/拆卸代码提取到挂钩:现在,测试变得更加干净,整个测试会话只运行一次设置代码。上述测试示例,请重新查看:
相关问题 更多 >
编程相关推荐