pytest -- 进阶使用详解

pytest-html⽣成报告

Pytest-HTML 是⼀个插件,它可以⽣成漂亮且易于阅读的 HTML 测试报告。

pytest-html ⽣成报告的步骤

① 安装 pytest-html 插件:

pip install pytest-html

② 运⾏测试并⽣成报告:

file name:main.pyimport pytest"""
等号的前后不能有空格,不然执行会报错
report/report.html:执行后,在当前文件目录下生成一个report文件夹,
里面包含report.html文件和一个assert文件夹
"""
pytest.main(["--html=report/report.html"])# 不加report/,直接在当前文件目录下生成一个report.html文件
# pytest.main(["--html=report.html"])

执行测试代码:

# file name:test_001.pydef test_004():print("用例test_001被运行")def test_005():print("用例test_002被运行")def test_006():print("这是一条异常用例")a = 1b = 2assert a + b == 4  # assert即断言,触发异常

main文件执行:终端输入如下

使⽤ --html 选项指定报告⽂件的名称和路径。在上述示例中,报告将⽣成为 report.html ⽂件。

③ 查看⽣成的报告:

打开⽣成的 HTML 报告⽂件,你将看到测试结果的摘要、详细的测试⽤例执⾏ 信息、失败⽤例的堆栈跟踪等。报告通常包括以下内容:

●  概述信息:显示运⾏的测试数量、通过的测试数量、失败的测试数量等概览 信息。

●  测试⽤例列表:列出每个测试⽤例的名称、状态(通过、失败、跳过等)、执⾏ 时间等信息。

●  错误和失败详情:提供失败⽤例的详细信息、堆栈跟踪等,帮助你快速定位和解 决问题。

●  图表和图形化统计信息:可视化展示测试结果、⽤例通过率、执⾏时间等数据。

④ ⾃定义报告的样式和配置

hmtl样式合并(没什么实际意义,做个了解)

上面的代码示例,执行后,在当前m8项目文件目录下生成了一个report文件夹 -> assets文件夹 -> style.css文件,这个文件是对html报告的样式做控制的,默认是样式与html文件是分离的

style.css文件删除后,再打开html报告,就没有样式了,只显示数据:

可以在main文件中,修改代码如下:

import pytestpytest.main(["--html=report/report.html","--self-contained-html"])

再次打开html文件,样式又恢复了:

pytest-html在报告中添加图⽚

fiel name:test_add_img.py from pytest_html import extras
import base64def test_add_img(extra):# 将图片转化为base64数据def image_to_base64(image_path):with open(image_path,"rb") as image_file:encoded_string = base64.b64encode(image_file.read())return encoded_string.decode("utf-8")# 添加图片文件image_path = "D:\pycharm\HC\pytest_demo\m8_1\列图1.jpg"extra.append(extras.jpg(image_path))#添加base64格式的图片base64_data = image_to_base64(image_path)extra.append(extras.image(base64_data))
flie name:main.pyimport pytestpytest.main(["--html=report/report.html", "--self-contained-html"])

main文件执行后,生成的测试报告:

Pytest获取⽤例结果流程

以下是两个模块的测试用例代码:

# file name:test_001.pydef test_001():print("用例test_001被运行")def test_002():print("用例test_002被运行")def test_003():print("用例test_003被运行")
# file name:test_002.pydef test_004():print("用例test_004被运行")def test_005():print("用例test_005被运行")def test_006():print("这是一条异常用例")a = 1b = 2assert a + b == 4  # assert即断言,触发异常

想要获取执行测试用例的结果流,需要在conftest中进行代码配置:

file name:conftest.py
import pytest@pytest.hookimpl(hookwrapper=True)          #固定写法、写死的
def pytest_runtest_makereport(item,call):   #固定写法、写死的outcome = yieldreport = outcome.get_result()if report.when == "call":              #过滤 前置、后置,只保留运行中的状态print("用例执行结果:",report.outcome)

执行用例:

从目前来看conftest的配置作用不大,接着往下看,其它作用

pytest-html的异常时添加图⽚实现

还是沿用上面“获取用例结果流程’”的两份用例代码

conftest.py代码:

file name:conftest.pyimport base64
import pytest
from pytest_html import extras@pytest.hookimpl(hookwrapper=True)          #固定写法、写死的
def pytest_runtest_makereport(item, call):   #固定写法、写死的# 将图片转化为base64数据def image_to_base64(image_path):with open(image_path,"rb") as image_file:encoded_string = base64.b64encode(image_file.read())return encoded_string.decode("utf-8")outcome = yieldreport = outcome.get_result()extra = getattr(report,"extra",[])if report.when == "call":  # 过滤 前置、后置,只保留运行中的状态print("用例执行结果:", report.outcome)if report.outcome != "passed":#失败截图数据image_path = "D:\pycharm\HC\pytest_demo\m8_1\列图1.jpg"base64_data = image_to_base64(image_path)extra.append(extras.image(base64_data))report.extra = extra

main.py代码: 

file name:main.pyimport pytestpytest.main(["--html=report/report.html","--self-contained-html"])

运行后,生成的测试报告:已经显示了截图

allure-pytest⽣成测试报告

allure环境部署

① allure-pytest安装

 pip install allure-pytest

② 安装JDK

安装 Java Development Kit (JDK):Allure 需要 Java 运行环境来执行。
确保你的系统已安装适当版本的 JDK(下载安装自行百度)

③ 安装 Allure 命令行工具

allure ⽣成测试报告⾸先需要先下载allure命令⾏⼯具,下载地址为:

Central Repository: io/qameta/allure/allure-commandline (apache.org)

下载allure:下载任意版本都可以

点进去会有很多,如果是windows系统,选择zip后缀的即可

下载了之后需要解压出来,然后可以为它设置⼀个环境变量,这样便于使⽤,环境变量的值为它的bin⽂件夹的绝对路径。

效验是否安装成功,在cmd输入:

allure --version

如上,cmd中能看到版本号,说明安装成功。

至此、环境问题就搞定了!~

allure-pytest生成测试报告步骤

第一步:运行测试用例

准备测试用例代码两份,还是沿用上面“获取用例结果流程’”的两份用例代码 

main文件代码:

import pytest#将结果记录下来,保存到allure_result这个文件中
pytest.main(["--alluredir","allure_result"])

第二步:获取测试用例的测试结果 

第三步:基于测试结果生成测试报告

修改添加main文件的代码:

import pytest
import os# 获得测试结果,并以allure的数据格式保留下来
pytest.main(["--alluredir","allure_result"])# 通过allure的数据,进行报告的生成
os.system("allure generate --clean ./allure_result -o ./allure_report")

再次运行main文件,这两部可以合并执行,这里只是为了展示效果,原理是分为两步

就出现一个allure_report的文件夹,index.html是生成的测试报告

第四步:查看测试报告

测试报告长这样, allure的样式还是比较酷炫的: 

allure-pytest的乱码解决⽅案

在使⽤allure-pytest的过程中,最容易出现的乱码情况是pycharm的终端出现乱码

截图如上面生成测试报告

解决步骤如下:

第一步:将pycharm配置到环境变量中,重启pycharm

第二步:修改pycharm的编码

如果还是出现乱码,按照上面提到的allure环境部署,检查一下有没有漏掉的环节

另外:路径命名的时候避免出现中文

allure-pytest的⾏为驱动标记

在Allure 报告中,feature 和 story 被称为⾏为驱动标记,⽤于描述测试⽤例所属的功能和故事。

● feature 标记⽤于标识测试⽤例所属的功能或模块。它表示被测试的系统中的 ⼀个主要功能。可以将 feature 视为⼀个⼤的分类或主题,⽤于组织和描述相 关的测试⽤例。

简单来说就是一个层级划分

--------->>>

● story 标记⽤于进⼀步细分 feature ,描述测试⽤例所属的具体故事或场景。 它表示在功能中的⼀个具体情境或使⽤案例。可以将 story 视为 feature 的 ⼦分类,⽤于更详细地描述测试⽤例。

--------->>>

这些⾏为驱动标记可以通过在测试⽤例的装饰器中添加相应的注解来指定。

在使⽤ pytest 运⾏测试⽤例时,可以在测试函数上使⽤装饰器来添加 feature 和 story 标记,如下所示:

allure-pytest的⾏为驱动标

在Allure 报告中,feature 和 story 被称为⾏为驱动标记,⽤于描述测试⽤例所属的功能和故事。

● feature 标记⽤于标识测试⽤例所属的功能或模块。它表示被测试的系统中的 ⼀个主要功能。可以将 feature 视为⼀个⼤的分类或主题,⽤于组织和描述相 关的测试⽤例。

--------->>>

● story 标记⽤于进⼀步细分 feature ,描述测试⽤例所属的具体故事或场景。 它表示在功能中的⼀个具体情境或使⽤案例。可以将 story 视为 feature 的 ⼦分类,⽤于更详细地描述测试⽤例。

--------->>>

这些⾏为驱动标记可以通过在测试⽤例的装饰器中添加相应的注解来指定。

在使⽤ pytest 运⾏测试⽤例时,可以在测试函数上使⽤装饰器来添加 feature 和 story 标记,如下所示:

测试用例代码:

flie name:test_01.pyimport allure@allure.feature("⽤户管理")  #主分类
@allure.story("创建用户")
def test_01():print("用例test_01被运行")@allure.feature("⽤户管理")
@allure.story("创建用户1")
def test_02():print("用例test_02被运行")def test_03():print("用例test_03被运行")
# file name:test_002.py
import allure@allure.feature("用户管理22")
class Test:def test_004(self):print("用例test_004被运行")def test_005(self):print("用例test_005被运行")def test_006(self):print("这是一条异常用例")a = 1b = 2assert a + b == 4

main.py代码:

化重点,main函数里千万记得加"--clean-alluredir",不然多次运行代码,测试报告中会显示重复的用例

import pytest
import os# 获得测试结果,并以allure的数据格式保留下来
pytest.main(["--alluredir","allure_results","--clean-alluredir"])# 通过allure的数据,进行报告的生成
os.system(r"allure generate --clean ./allure_results -o ./allure_report")

运行后,查看测试报告:就可以看到层级的效果

allure-pytest的步骤管理

Allure-pytest 提供了步骤管理功能,可以帮助在测试⽤例中记录和展示测试步骤的执⾏情况。步骤管理可以提供更详细的测试过程描述,帮助定位问题和跟踪测试执⾏。

下⾯是使⽤ Allure-pytest 进⾏步骤管理的简单步骤:

1. 在测试⽤例中使⽤ @allure.step 装饰器定义步骤:

用例集代码如下:

每个函数对应一个步骤,即创建一个函数,声明步骤

# file name:test001.py
import allure@allure.step("步骤1:登录系统")  #声明为步骤1
def step_login_system(username, password):# 登录系统的代码逻辑print("登录", username, password)@allure.step("步骤2:搜索商品")  #声明为步骤2
def step_search_product(product_name):# 搜索商品的代码逻辑print("搜索商品", product_name)@allure.step("步骤3:添加商品到购物车")  #声明为步骤3
def step_add_to_cart(product_id):# 添加商品到购物车的代码逻辑print("添加商品id:", product_id, "到购物车")@allure.step("步骤4:结算购物车")   #声明为步骤4
def step_checkout_cart():# 结算购物车的代码逻辑print("结算购物车")@allure.step("步骤5:确认订单")   #声明为步骤5
def step_confirm_order():# 确认订单的代码逻辑print("确认订单")

2. 在测试⽤例中按照顺序调⽤定义的步骤:

可以直接接着上面的代码后面写

"""
定义测试函数:依次调用了之前定义的测试步骤函数
模拟一个简单的购物流程:登录系统、搜索商品、添加商品到购物车、结算购物车、确认订单。
"""
def test_shopping_flow():  step_login_system("testuser", "password")step_search_product("iPhone")step_add_to_cart("12345")step_checkout_cart()step_confirm_order()assert True

或者也可以这样写:

def test_step_show():with allure.step("步骤1"):print("步骤1的逻辑代码")with allure.step("步骤2"):print("步骤2的逻辑代码")with allure.step("子步骤2.1"):print("子步骤2.1的逻辑代码")with allure.step("子步骤2.2"):print("子步骤2.2的逻辑代码")with allure.step("步骤3"):print("步骤3的逻辑代码")with allure.step("步骤4"):print("步骤4的逻辑代码")

执行main文件:

# file name:main.py
import pytest
import ospytest.main(["--alluredir", "./allure_results", "--clean-alluredir"])
os.system(r"allure generate --clean ./allure_results -o ./allure_report")

总览的详情点开,会显示输出的步骤,以及参数等:

在 Allure 报告中,每个步骤都将被记录和展示,并且可以查看每个步骤的执⾏状 态、⽇志和截图等信息。

这样的步骤管理可以帮助测试⼈员更好地理解测试过 程,快速定位和排查问题。

allure-pytest在报告中添加图⽚

添加图⽚可以提供更直观的信息展示,帮助测试⼈员和利益相关者更好地理解测试结果。 Allure-pytest 测试框架中使⽤ @allure.attach 装饰器将图⽚作为附件添加到报告中。

通过以下步骤实现在 Allure 报告中添加图⽚:

将图⽚准备好,可以是⽂件路径或者已经编码为 base64 的图⽚内容。

使⽤ allure.attach ⽅法将图⽚作为附件添加到报告中

指定附件的名称和类型,通常是 PNG 或 JPEG 格式

# file name:test001.py
import alluredef test():image_path = "png.png"with open(image_path, 'rb') as image_file:#设置图片的名字,-声明要添加的图片格式的类型为pngallure.attach(image_file.read(), name='图片的名称', attachment_type=allure.attachment_type.PNG)

运行main文件,查看测试报告:

通过 Allure-pytest 的 @allure.attach 装饰器添加图⽚的目的:

可以增强报告的可读性和 信息传达效果,使测试结果更加直观和清晰。

allure-pytest的异常时添加图

和pytest-hmtl一样:

conftest.py文件中写异常的截图
# file name:conftest.py
import pytest
import allure@pytest.hookimpl(hookwrapper=True)  # 写死的
def pytest_runtest_makereport(item, call):  # 写死的outcome = yieldreport = outcome.get_result()if report.when == "call":  # 过滤 前置,和后置,只保留运行中的状态if report.outcome != "passed":"""失败截图数据"""image_path = "png.png"  # 这里你可以换成你的图片路径with open(image_path, 'rb') as image_file:allure.attach(image_file.read(), name='异常截图', attachment_type=allure.attachment_type.PNG)

用例中写正常的截图:

# file name:test001.py
import alluredef test():image_path = "png.png"with open(image_path, 'rb') as image_file:allure.attach(image_file.read(), name='正常的图片', attachment_type=allure.attachment_type.PNG)print("异常用例")assert 0

main文件代码:

import pytest
import ospytest.main(["--alluredir", "./allure_results", "--clean-alluredir"])
os.system(r"allure generate --clean ./allure_results -o ./allure_report")

查看测试报告:会显示两个图片:

Pytest的数据驱动⽅案

数据驱动是⼀种常⻅的测试⽅案,它允许我们使⽤不同的测试数据来执⾏相同的测试⽤例。这种⽅法可以帮助我们提⾼测试覆盖率,减少代码冗余,并更好地组织测试代 码。

pytest的数据驱动的⽅案,有且只有下面两个⽅法:

1.使⽤fixtures和数据⽂件

我们可以结合pytest的fixtures来实现数据驱动。

在这种⽅法中,我们可以使⽤fixture 读取和处理数据⽂件,并将数据作为参数传递给测试函数。

通过@pytest.fixture接受一个参数params

params里接收一个list的数据集合,里面是3个元组

将fixture名字命名为test_data,用data构建一个request,

request接收params的数据返回给测试用例:
# file name:conftest.py
import pytest@pytest.fixture(params=[(1, 2, 3),(5, 5, 10),(10, -2, 8)
], name="test_data")
def data(request):return request.param

测试用例:

测试用例中的test_data接收conftest.py中的fixtures

# file name:test_001.pydef test(test_data):print(test_data)

main文件:

# file name:main.pyimport pytestpytest.main(["-vs"])

运行结果:

2.使⽤@pytest.mark标签管理

pytest提供了⼀个装饰器 @pytest.mark.parametrize ,它可以⽤来将测试函数参数化。

通过这个装饰器,我们可以指定多个参数值的组合,pytest会⾃动为每个组合⽣成⼀个独⽴的测试⽤例。

parametrize是固定标签,可以接收参数,这里设置接收三个参数,以逗号分隔

三个参数分别接收三个元组数据,按照顺序,inptut1接收第一个元组,以此类推

函数的内容、或步骤不变,但是数据改变的情况下,就可以做成数据驱动

# file name:test_data_driver.py
import pytest@pytest.mark.parametrize("input1, input2, expected", [(1, 2, 3),(5, 5, 10),(10, -2, 8)
])
def test_addition(input1, input2, expected):print("input1的数据", input1)print("input2的数据", input2)print("expected的数据", expected)assert input1 + input2 == expected

执行后输出:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/629201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring IoC 和 DI

文章目录 1. 什么是 Spring2. 什么是 IoC3. 什么是 DI4. IoC & DI 使用5. 获取 Bean 的方式5.1 根据类型获取 bean5.2 根据名称获取 bean5.3 获取bean对象的其他方式5.4 五大注解的关联 6. 方法注解7. 扫描路径8. Bean 的名称9. DI 详解9.1 属性注入9.2 构造方法注入9.3 Se…

代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间

题目&#xff1a;435. 无重叠区间 文章链接&#xff1a;代码随想录 视频链接&#xff1a;LeetCode:435.无重叠区间 题目链接&#xff1a;力扣题目链接 图释&#xff1a; class Solution { public:static bool cmp(const vector<int>&a, const vector<int>…

HDFS读写数据流程、NameNode与DataNode工作机制

文章目录 HDFS 写数据流程HDFS 读数据流程HDFS 节点距离计算HDFS 机架感知HDFS NN和2NN工作机制HDFS FsImage镜像文件HDFS Edits编辑日志HDFS 检查点CheckPoint时间设置HDFS 退役旧数据节点HDFS DataNode多目录配置HDFS DataNode工作机制HDFS 数据完整性HDFS 掉线时限参数设置 …

Configure Virtual Serial Port Driver串口模拟器VSPD

背景 串口通讯想必做硬件开发和软件的人来说都相当了解&#xff0c;以前的电脑&#xff0c;基本标配都包含一个串口。但现在的电脑&#xff0c;基本都没有配置串口了&#xff0c;如果要使用串口的功能&#xff0c;基本就要用一个USB转串口的硬件模块。 虚拟串口&#xff08;虚…

[oeasy]python005_退出游乐场_重启游乐场_系统态shell_应用态_quit

0005_ 退出游乐场_重启游乐场_系统态shell 退出终端_重启游乐场_shell_quit &#x1f94a; Python 回忆 上次 了解了 python进入了 python 游乐场 在游乐场 可以做 简单的计算还可以做 乘方运算 数字特别大之后 游乐场 会迟疑一下不过 最终 还是能算出来 可以让数字 更大一…

【特征工程】分类变量:BinaryEncoder二进制编码方法详解

Binary Encoding&#xff1a;二进制编码方法详解 Binary Encoding是将每个整数表示为二进制数&#xff0c;然后按位拆分为多个二进制变量。这种方法旨在减少维度&#xff0c;同时避免了One-Hot Encoding的高维稀疏问题。 Binary encoding for categorical variables, similar …

2023年全球软件质量效能大会(QECon北京站):核心内容与学习收获(附大会核心PPT下载)

此次大会的主题为“智能时代的质量新篇章”。来自全球的软件质量与效能专家、企业领袖、技术研发人员等齐聚一堂&#xff0c;共同探讨软件质量与效能的新理念、新技术、新实践。 一、大会的核心内容 1、智能时代软件质量的新挑战与机遇 随着人工智能、大数据等技术的快速发展…

presto 支持regexp_count

一、背景 1、查询regexp_count 函数提示未注册 用户想正则查询特定字符出现次数 function regexp_count not registered 二、调研 1、官网地址&#xff1a; Presto Documentation — Presto 0.284 Documentation 2、regexp_extract_all Regular Expression Functions —…

Js-web APIs(一)

目录 Web API 基本认知 • 作用和分类 • 什么是DOM • DOM树 • DOM对象(重要) 获取DOM对象 • 根据CSS选择器来获取DOM元素 (重点) 1.选择匹配的第一个元素 2.选择匹配的多个元素 • 其他获取DOM元素方法&#xff08;了解&#xff09; 操作元素内容 • 对象.innerT…

Lua从电脑端爬取短视频评论并作商业化分析

之前有个大客户让我写一篇关于抓取短视频评论数据的单子&#xff0c;说是帮助公司寻找意向客户以及所对应产品在短视频里面的展现以及热门程度&#xff0c;通过数据采集方式并作数据自动化分析&#xff0c;从而实现商业上的价值。对于我来说写个爬虫还不简单&#xff0c;通过三…

鸿蒙Harmony-列表组件(List)详解

不要和别人比生活&#xff0c;每个人阶段不同&#xff0c;追求不同&#xff0c;活法自然也不同。只要今天的你能比昨天的你快乐一点点&#xff0c;那你就是自己人生赢家。 目录 一&#xff0c;定义 二&#xff0c;布局与约束 2.1 布局 2.2 约束 三&#xff0c;开发布局 3.1 设置…

DC电源模块在新能源领域的应用前景

BOSHIDA DC电源模块在新能源领域的应用前景 DC电源模块在新能源领域有着广阔的应用前景。随着可再生能源技术的发展和普及&#xff0c;如太阳能和风能等的应用逐渐增多&#xff0c;DC电源模块在这些领域的应用越来越重要。 首先&#xff0c;DC电源模块可以用于太阳能发电系统…

使用micro-app将现有项目改造成微前端,对现有项目实现增量升级

使用micro-app将现有项目改造成微前端&#xff0c;对现有项目实现增量升级 基座应用 1、安装依赖 npm i micro-zoe/micro-app --save2、在入口引入 //main.js import microApp from micro-zoe/micro-appnew Vue({ }) //在new Vue 下面执行 microApp.start()3、新增一个vue页…

【目标检测】评价指标:mAP概念及其计算方法(yolo源码/pycocotools)

本篇文章首先介绍目标检测任务中的关键评价指标mAP的概念&#xff1b;然后介绍其在yolo源码和pycocotools工具中的实现方法&#xff1b;最后比较两种mAP的计算方法的不同之处。 目标检测中的评价指标&#xff1a; mAP概念及其计算方法(yolo源码/pycocotools) 混淆矩阵概念及其…

ArcGIS Pro中怎么加载在线地图

当我们在制图的时候&#xff0c;有的时候需要加载在线地图&#xff0c;在ArcGIS Pro中加载在线地图的方式有很多&#xff0c;这里为大家介绍一下加载的方法&#xff0c;希望能对你有所帮助。 加载底图 在菜单栏上选择地图&#xff0c;点击底图&#xff0c;可以看到所有可加载…

FTP文件传输协议 、多种方式安装yum仓库

一、网络文件共享服务 1.存储类型分三种&#xff1a; 直连式存储&#xff1a;Direct-Attached Storage&#xff0c;简称DAS 存储区域网络&#xff1a;Storage Area Network&#xff0c;简称SAN&#xff08;可以使用空间&#xff0c;管理也是你来管理&#xff09; 网络附加存储…

maxwell同步全量历史数据

CentOS安装maxwell 在上篇的基础上&#xff0c;我们实现了实时同步mysql数据到kafka。maxwell不仅可以同步实时数据&#xff0c;也可以同步全量历史数据。在这里模拟一下历史数据的场景&#xff0c;创建表结构如下&#xff0c;并写入测试数据。 CREATE TABLE user_det…

手把手教你搭建一个数据可视化看板

前言 俗话说的好&#xff0c;“字不如表&#xff0c;表不如图”、“有图有真相&#xff0c;一图胜千言”。 数据可视化就是用图的形式把基础数据直观&#xff0c;简洁的&#xff0c;高效的展示出来&#xff0c;今天为大家介绍一下如何使用葡萄城公司的嵌入式BI工具——Wyn商业…

JavaScript的Class基本语法

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 JavaScript是一种基于原型的语言&#xff0c;但在ES6中引入了class关…

成功解决VScode进入到内置函数中调试

主要有两个关键步骤&#xff0c; 第一步 将launch.json中的"justMyCode"设为false 可通过使用ctrlshiftP搜索lauch.json找到次文件 如果找不到的话&#xff0c;可点击debug按钮&#xff0c;然后找到点击create a launch.json file创建 创建得到的launch.json如下&am…