Python 预提交单元测试失败

标签 python git python-unittest pre-commit-hook pre-commit.com

pre-commit 在提交我的代码之前运行测试。
命令 python -m unittest discover正在命令行中工作。

D:\project_dir>python -m unittest discover
...
...
...
----------------------------------------------------------------------
Ran 5 tests in 6.743s

OK

但是当我尝试提交时,我得到了
D:\project_dir>git commit -m "fix tests with hook"
run tests................................................................Failed
hookid: tests

usage: python.exe -m unittest discover [-h] [-v] [-q] [--locals] [-f] [-c]
                                       [-b] [-k TESTNAMEPATTERNS] [-s START]
                                       [-p PATTERN] [-t TOP]
python.exe -m unittest discover: error: unrecognized arguments: bigpipe_response/processors_manager.py
usage: python.exe -m unittest discover [-h] [-v] [-q] [--locals] [-f] [-c]
                                       [-b] [-k TESTNAMEPATTERNS] [-s START]
                                       [-p PATTERN] [-t TOP]
python.exe -m unittest discover: error: unrecognized arguments: tests/test_processors.py

这是我的 .pre-commit-config.yaml文件。
-   repo: local
    hooks:
    -   id: tests
        name: run tests
        entry: python -m unittest discover
        language: python
        types: [python]
        stages: [commit]

同样对于语言,我尝试使用 system .我得到了同样的结果。

我该如何解决这个问题?请帮忙。

最佳答案

您可以尝试以下 YAML。当然,您应该更改args 中的模式。如果您使用不同的选项。

-   id: unittest
    name: unittest
    entry: python -m unittest discover 
    language: python
    'types': [python]
    args: ["-p '*test.py'"] # Probably this option is absolutely not needed.
    pass_filenames: false
    stages: [commit]

您应该设置为 false pass_filenames参数,因为在其他情况下,文件将作为参数传递,正如您在问题中提到的,这些是“无法识别的”参数。

关于Python 预提交单元测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59358182/

相关文章:

python - Pandas 按唯一计数分组作为新列

python - 在 Pandas 数据框中的两个单独的列中显示相同的行号

python unittest : mocking a dict-like object

linux - SSH - 我有多个用于不同目的的 key 还是一个代表我的系统的 key ?

Python setuptools 隐藏了测试未运行的真正原因

python - Django 2.1 的完整性错误

python - isdigit 不适合我

python - 在 Django 管理中搜索时出错

git - Github 如何允许内联文件编辑? (或者如何在裸 git 存储库中添加或编辑文件)

git - 无需克隆即可检索 Github 存储库的最新 git 提交哈希