在本地运行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在测试前更新构建,请执行以下操作-j
or--parallel
n to engage n cores when building SciPy; e.g.python runtests.py -j 4
engages four cores. As of #10172 this also runs the tests on four cores ifpytest-xdist
is installed.-m
或--mode
full
运行完整的测试套件,包括速度较慢的测试。例如,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
在运行测试套件之前。