在本地运行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 if pytest-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 在运行测试套件之前。