pytest_collection_modifyitems
: 重写搜集用例的这个钩子函数markers
这3样写到 csv 文件中 。2. 测试插件代码插件主体代码写好了 , 我们需要自测一下 。
按之前的话 , 可以直接把插件代码写到本地
conftest
文件里作为本地代码直接调用测试即可 。不过 Pytest 附带一个名为
pytester
的插件 , 它可以帮助我们为插件代码编写测试 。这个插件在默认情况下是禁用的 , 所以在使用之前要先开启 。在 test 目录下的
conftest
文件中声明即可 。
文章插图
接下来上插件测试代码 , 然后讲解一下相关用法:
import pytestdef test_pingguo(pytester):"""Make sure that our plugin works."""pytester.makeini("""[pytest]markers =nightlyperformanceintegrationhighmediumlow""")pytester.makepyfile("""import pytest@pytest.mark.performancedef test_one():\"""test_one\"""assert False@pytest.mark.highdef test_two():\"""test_two\"""assert Truedef test_three():\"""test_three\"""assert Trueclass TestPingGuo():@pytest.mark.high@pytest.mark.performancedef test_a(self):\"""TestPingGuo.test_a , 测试\"""assert Falsedef test_b(self):\"""TestPingGuo.test_b测试\"""assert True""")# run all tests with pytestresult = pytester.runpytest("--testplan=testplan.csv")
这里最重要的就是pytester
提供的方法 , 比如上面用到的:pytester.makeini
:因为我的测试case上加了不同的 marker , 这些是需要注册在 ini 文件里的pytester.makepyfile
: 这里就是写的测试用例代码了
""" """
包起来 , 当做字符串 , 然后 pytest 会自行解析我们的代码 , 在临时目录里创建对应的文件然后运行 。不仅如此 , 还可以创建其他的文件 , 比如
conftest
。这是源码 , 有兴趣的可以进去一探究竟 。
文章插图
pytester.runpytest("--testplan=testplan.csv")
这里可以添加要执行的命令行参数 。运行测试
直接运行测试代码 , 看下结果 。

文章插图
注意我这里的文件也是被生成在了临时目录里 , 打开控制台输出的路径就可以找到 。

文章插图
打开 csv 文件验证一下结果 , 输出正确 。

文章插图
3. 打包回到项目根目录 , 命令行输入:
python setup.py sdist build
完成后会生成dist
目录 , 下面就有对应的包 。
文章插图
4. 上传 pypi没有账号的要先注册登录一下 , 记得要去对应填写的邮箱里点击激活认证才可以 。
接着安装
twine
, 我能使用这个工具来上传 。pip install twine
安装完成后就可以执行了上传:twine upload dist/*
提示需要输入注册的账号和密码 , 最后完成上传 。
文章插图
上传完成后就可以在pypi中打开自己的插件主页了 , 现在其他小伙伴也可以安装插件了 。
经验总结扩展阅读
- 葡萄酒有白色漂浮物怎么处理
- 茶麸洗头几天洗一次为宜
- 巴沙鱼禁止的原因
- 上太空的三个航天员的名字
- 羊蝎子火锅里面有什么
- 骨灰的主要成分
- 熬猪油大火还是小火
- 白茶属于绿茶吗?
- 地震等级威力大小差别
- 喝什么茶对身体好