在本地运行SciPy测试¶
中记录了从Python解释器中编写和执行的基本测试 NumPy/SciPy Testing Guidelines 。此页包含有关使用SciPy从命令行运行测试的信息 runtests.py ,这允许更好的控制。 注意:在开始之前,请确保 pytest 已安装。
要运行所有测试,请导航到命令行中的SciPy根目录,然后执行
python runtests.py -v
哪里 -v 激活 --verbose 选项。这将构建SciPy(或更新现有构建)并运行测试。
在特定子模块上运行测试,例如 optimize ,请使用 --submodule 选项:
python runtests.py -v -s optimize
若要运行特定的测试模块,请使用 --test 选项:
python runtests.py -v -t scipy.<module>.tests.<test_file>
示例 scipy/optimize/tests/test_linprog.py 文件测试,运行:
python runtests.py -v -t scipy.optimize.tests.test_linprog
要运行测试类,请执行以下操作:
python runtests.py -v -t scipy.<module>.tests.<test_file>::<TestClass>
示例 TestLinprogRSCommon 类来自 test_linprog.py :
python runtests.py -v -t scipy.optimize.tests.test_linprog::TestLinprogRSCommon
要运行特定测试,请执行以下操作:
python runtests.py -v -t scipy.<module>.tests.<test_file>::<test_name>
示例 test_unknown_solvers_and_options 从… test_linprog.py :
python runtests.py -v -t scipy.optimize.tests.test_linprog::test_unknown_solvers_and_options
对于类中的测试,您需要指定类名和测试名:
python runtests.py -v -t scipy.<module>.tests.<test_file>::<TestClass>::<test_name>
示例:
python runtests.py -v -t scipy.optimize.tests.test_linprog::TestLinprogRSCommon::test_nontrivial_problem_with_guess
其他有用的选项包括:
--coverage要在中生成测试覆盖率报告,请执行以下操作scipy/build/coverage/index.html。 注:pytest-cov必须安装。--doc要在中生成文档,请执行以下操作scipy/doc/build。默认情况下,文档仅在html-scipyorg格式,但您可以通过附加所需格式的名称(例如--doc latex)。--refguide-check检查Scipy子模块中的对象是否__all__DICT对应于参考指南中包含的对象。它还检查文档字符串中的代码示例的有效性。
--bench来运行所有基准测试。看见 用空速对SciPy进行基准测试 。--pep8若要执行PEP8检查,请执行以下操作。--mypy要运行,请执行以下操作 mypy 在代码库上。-n或--no-build要防止SciPy在测试前更新构建,请执行以下操作-jor--paralleln to engage n cores when building SciPy; e.g.python runtests.py -j 4engages four cores. As of #10172 this also runs the tests on four cores ifpytest-xdistis installed.-m或--modefull运行完整的测试套件,包括速度较慢的测试。例如,python runtests.py -m full。--将剩余的命令行参数发送到pytest而不是runtest.py。例如,虽然-n发送至pytest.py激活--no-build选项,-n发送至pytest在多核上运行测试;例如python runtests.py -- -n 4使用四个内核运行测试。 注:pytest-xdist必须安装才能在多个内核上进行测试。
中列出了此处未记录的其他选项 main 的源代码的功能 runtests.py. 有关以下内容的更多信息,请参阅 pytest ,请参阅 pytest documentation 。
提示:¶
如果您从源代码构建了SciPy,但在更改代码库后运行测试时遇到问题,请尝试删除 scipy/build 目录。这股力量 runtest.py 在进行测试之前完全重建SciPy。
还有一个额外级别的非常慢的测试(几分钟),即使在调用 python runtests.py -m full 。可以通过设置环境变量来启用它们 SCIPY_XSLOW=1 在运行测试套件之前。