前言
我们每天写完自动化用例后都会提交到 git 仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交 git 仓库的用例。pytest-picked 插件可以实现只运行未提交到git仓库的代码。
安装
pip3 install pytest-picked
使用示例
$ pytest --picked $ pytest --picked=first $ pytest --picked --mode=branch $ pytest --picked --mode=unstaged # default $ pytest --picked --mode=branch --parent-branch=main # if your parent branch differs from "master"
--picked 参数
我们在已提交过 git 仓库的用例里面新增了 1 个文件 test_new.py cd到项目根目录,使用git status查看当前分支状态
> git status On branch master Your branch is up to date with 'origin/master'. Changes to be committed: (use "git restore --staged..." to unstage) new file: case/test_new.py Changes not staged for commit: (use "git add..." to update what will be committed) (use "git restore..." to discard changes in working directory) modified: case/test_new.py
可以看到有1个文件,使用 pytest --picked 运行用例
Changed test files... 1. ['case/test_new.py'] collecting ... case/test_new.py ✓ 100% ██████████ Results (0.04s): 1 passed
--picked=first
首先运行修改后的测试文件中的测试,然后运行所有未修改的测试
--mode=PICKED_MODE
--mode 有2个参数可选 unstaged, branch, 默认是--mode=unstaged
git 文件的2个状态
untrack 没加到git里面的新文件 unstaged staged:暂存状态, unstage就是未暂存状态,也就是没git add 过的文件 先弄清楚什么是 untrack 状态,当我们 pycharm 打开 git 项目,新增一个文件的时候,会弹出询问框:是否加到 git 文件如果选择是,文件会变绿色,也就是 unstage 状态(没git add 过);选择否,那就是一个新文件,未被加到当前分支的 git 目录里面,文件颜色是棕色。 git status 查看当前分支的状态,此时会看到 case/test_new2.py 是 Untracked files
> git status Changes to be committed: (use "git restore --staged..." to unstage) new file: case/test_new.py Changes not staged for commit: (use "git add..." to update what will be committed) (use "git restore..." to discard changes in working directory) modified: case/test_new.py Untracked files: (use "git add..." to include in what will be committed) case/test_new2.py
运行 pytest --picked 会默认执行所有的 Untracked 文件和 not staged 文件,默认是--mode=unstaged。
collecting ... case/test_new2.py::test_2 ✓ 50% █████ case/test_new.py::test_1 ✓ 100% ██████████
如果我们只需运行当前分支上已经被暂存,但尚未提交的文件(不包含 Untracked files) 运行 pytest --picked --mode=branch, 运行分支上已经被暂存但尚未提交的代码
(pytest_env) ➜ apitest git:(master) ✗ pytest --picked --mode=branch Changed test files... 1. ['case/test_new.py'] Changed test folders... 0. [] collecting ... case/test_new.py::test_1 ✓ 100% ██████████
查看更多关于Pytest(17)运行未提交的git(pytest-picked)的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did126659