Python预提交单元测试失败

2024-09-30 01:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望^{}在提交代码之前运行测试。
命令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。我得到了同样的结果。你知道吗

我怎样才能解决这个问题?请帮忙。你知道吗


Tags: runprojecttopdirusagetestserrorunittest
1条回答
网友
1楼 · 发布于 2024-09-30 01:22:26

你可以试试下面的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,因为在其他情况下,文件将作为参数传递,正如您在问题中提到的,这些参数是“无法识别的”。你知道吗

相关问题 更多 >

    热门问题