小编Zac*_*son的帖子

将命令行参数与 pytest --pyargs 一起使用

我已经为我用如下结构编写的包编写了 pytest 单元测试:

  • 包目录
    • 设置文件
    • 我的包裹
      • __init__.py
      • 功能包
        • __init__.py
        • 功能模块.py
      • 测试
        • __init__.py
        • conftest.py
        • 单元测试
          • __init__.py
          • 功能模块_test.py

现在 packagedir/mypackage/test/conftest.py 建立了两个必需的命令行参数,以作为测试的夹具创建。当我运行类似的东西时:

pytest packagedir/mypackage/ --var1 foo --var2 bar
Run Code Online (Sandbox Code Playgroud)

所有测试都运行并且命令行参数被正确读入。但是,当我 pip install 包(它正确安装 test 和 unit_tests 包)然后尝试这样的事情时:

pytest --pyargs mypackage --var1 foo --var2 bar
Run Code Online (Sandbox Code Playgroud)

我收到这样的错误:

usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --var1 foo --var2 bar
Run Code Online (Sandbox Code Playgroud)

如果我运行:

pytest --pyargs mypackage
Run Code Online (Sandbox Code Playgroud)

测试运行但失败,因为命令行参数不存在。

有人可以向我解释这里可能出了什么问题吗?我可以猜测并说这是因为 --pyargs 参数改变了 pytest 的命令行参数的解释,但这只是一个猜测。我想知道是否有实际的方法可以解决这个问题。

首要目标是允许某人 pip install mypackage 然后能够轻松地测试它,而无需导航到安装的站点包位置。

python pytest

6
推荐指数
1
解决办法
1944
查看次数

标签 统计

pytest ×1

python ×1