📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处
文章目录
- 一、sys模块
- 二、os模块
- 三、pytest模块
- 3.1 @pytest.mark的作用
- 3.2 打标签的方法
- 3.3 注册标签名
- 3.4 @pytest.mark的使用
- 3.5 扩展:通过命令行执行
一、sys模块
✍根目录:根目录(Root Directory)是指文件系统中的最顶层目录。在不同的操作系统中,根目录的表示方式会有所不同。
在Windows操作系统中,根目录通常表示为盘符加上反斜杠(\),例如C:\表示C盘的根目录。
在类Unix操作系统(如Linux、Mac等)中,根目录表示为单个正斜杠(/)。例如/表示根目录。
✍工作目录:工作目录(Working Directory),也被称为当前工作目录或当前目录,是指当前用户正在进行操作的目录。它是文件系统中的一个概念,表示用户当前所在的目录路径。
在不同的操作系统中,获取和设置当前工作目录的方法略有不同:
✍ 在Unix/Linux系统中,可以使用pwd命令来查看当前工作目录,并使用cd命令来修改当前工作目录。
✍ 在Windows系统中,可以使用cd命令来查看和修改当前工作目录。例如,cd命令会将当前工作目录更改为用户的主目录,而cd …命令会将当前工作目录更改为上一级目录。
二、os模块
os.path.abspath(file)
os.path.abspath(file) 作用: 获取当前脚本的完整路径
import os
print(os.path.abspath(__file__) )
三、pytest模块
3.1 @pytest.mark的作用
@pytest.mark的作用: pytest提供了一个非常好用的mark功能,可以给测试用例打上各种各样的标签,运行用例时可以指定运行某个标签。mark功能作用就是灵活的管理和运行测试用例。
搭配pytest.main函数一起使用才更棒哦!
所谓pytest.main函数是pytest框架中的一个重要函数,用于执行测试用例。
此外,同一测试类/方法可同时拥有多个标记;
3.2 打标签的方法
打标签的方法:标签既可以打到方法上,也可以打到类上,
1、直接标记类或方法或函数:@pytest.mark.标签名
2、类属性:pytestmark = [pytest.mark.标签名, pytest.mark.标签名],需要注意的是属性名称是固定的
3.3 注册标签名
要想运行已经打好标记的函数,还需要对标签名进行注册,告诉pytest有哪些标签,如果不进行注册运行时(pytest的高级版本)可能会报警告让你进行注册。 我们只需要在项目根目录下创建一个pytest.ini文件,注意文件名是不可修改的,否则pytest会找不到。内容格式如下:
[pytest]
# 注册标签
markers =test_additiontest_subtractiontest_payment
3.4 @pytest.mark的使用
主要是通过代码执行相关代码,来实现对@pytest.mark的使用。主要包括三个文件,其中文件3可以与文件2合并,具体如下:
文件1:文件名规定为pytest.ini,利于解释器的检索。用于注册标签名,具体用法请看上一小节。
文件2:含有被标记的用例的.py文件,用于main.py文件调用并执行被标记的用例。
在被标记的用例上边加入以@pytest.mark开头的标签,标签名没有什么限制,最好跟函数名一致,便于代码的阅读。例如:
import pytest@pytest.mark.test_addition
def test_addition():# 用于测试加法功能的测试用例print("加法")pass@pytest.mark.test_subtraction
def test_subtraction():# 用于测试减法功能的测试用例print("减法")pass@pytest.mark.test_payment
def test_payment():# 用于测试支付功能的测试用例print("支付")pass
文件3:含有pytest.main()函数的文件,姑且命名为main.py,用过运行该文件来执行代码。其中必备代码如下:
import pytest
if __name__ == '__main__':pytest.main(['-s', '-m', 'test_addition'])
参数“-s”:意味着输出结果要打印出详细的信息。
参数“-m”:意味着执行指定标记的函数或是类等。
运行后只执行标记为test_addition的函数,而其他两个没有被执行。
pytest.main([‘-svx’, os.path.abspath(file)]):运行本路径下python文件,即当前所在文件的所有用例。
具体代码如下:
import pytest
import os
if __name__ == '__main__':pytest.main(['-svx', os.path.abspath(__file__)])
3.5 扩展:通过命令行执行
单个标签:pytest -m “标签名” (-m意思是执行标签mark),不想执行某个标签可以用not来取反,即pytest -m “not 标签名”
多个标签:可以加上判断,pytest -m “qc and beta” 或者 pytest -m “qc or beta” 效果是一样的
注意:标签名一定要加双引号,单引号是会报错的。