详解在Pytest中忽略测试目录的三种方法
关注开源优测不迷路
大数据测试过程、策略及挑战
测试框架原理,构建成功的基石
在自动化测试工作之前,你应该知道的10条建议
在自动化测试中,重要的不是工具
你是否曾因无关或过时的代码导致测试失败?
这可能会增加调试和故障排除的难度,还会造成不必要的测试执行时间。或者你有正在开发中的代码,还不适合进行测试。
在这些情况下,你可能想从测试套件中排除某些测试。但在 Pytest 中该怎么做呢?你当然可以在相关目录中运行 pytest,但这效率并不高。
好消息是,忽略测试目录完全可行,而且非常简单!
借助 Pytest,通过命令行选项、标记和配置文件,跳过目录和测试变得轻而易举。这不仅能确保测试顺利执行,还能让你的测试套件更精简,加速持续集成 / 持续交付(CI/CD)流程。
在本文中,你将学习如何使用 Pytest 的忽略目录功能,通过不同方法高效地从测试套件中排除不必要的测试。
你将学到什么
本文将教会你:
如何使用各种选项(如命令行标志和配置文件)在 Pytest 中忽略测试目录
如何使用标记忽略单个测试
理解 Pytest 中的测试收集机制
在探讨核心内容之前,让我们先了解一下 Pytest 是如何收集测试的。
Pytest 会从项目的根目录开始,对所有后续目录进行递归搜索,查找与配置模式匹配的文件和目录。具体如下:
它会识别以 “test” 或 “tests” 为前缀的目录。你可以通过配置文件(如 pytest.ini)中的
testpaths
变量来定义测试目录。如果你需要复习一下 pytest.ini,可以查看这篇指南。搜索范围会扩展到名称与测试模式匹配的文件(例如
test_*.py
或*_test.py
)。Pytest 会识别具有指定名称的函数或类,例如函数名以
test_*
开头,或者类名以Test*
开头且包含测试方法。夹具对于准备测试环境至关重要,可通过初始化变量、资源并执行设置和清理操作来实现。你可以在
conftest.py
中使用@pytest.fixture
装饰器来定义夹具。
这些约定是 Pytest 定位测试目录的默认模式。
如果你的项目目录和名称与这些约定不符,可能会遇到 “Collected 0 items” 错误。
你还可以使用自定义模式更改 Pytest 的默认测试发现规则,例如:
[pytest]python_files = check_*.py
python_classes = Check
python_functions = *_check
为什么要在 Pytest 中忽略目录?
那么,为什么要在 Pytest 中忽略目录呢?为什么不让测试框架自行处理呢?
想想看,大型项目通常包含 1000 多个测试(例如单元测试、集成测试、功能测试、回归测试、冒烟测试、端到端测试),而你需要分析某些特定测试的结果。或者你正在开发一个小功能,不需要运行整个测试套件。
当你运行 pytest 时,它会收集所有测试,这包括仍在开发中的测试、针对即将开发模块的测试,或者与当前任务无关的测试。这会使你的测试套件变得臃肿,运行速度变慢。
你可以根据 Pytest 标记来运行测试,但每次都为每个标记重复操作会很麻烦。此外,通过命令行进行选择性测试执行也具有挑战性。
这时,Pytest 的忽略目录功能就派上用场了,它可以让你干净利落地排除不必要的测试,使其不被执行。
加快测试执行速度:通过排除不必要的目录,你可以减少 Pytest 需要发现和运行的测试数量。这可以显著缩短整体测试设置和执行时间,还能加快 CI/CD 流程,为你节省成本。
聚焦测试:忽略目录可以让你专注于测试项目的核心和相关部分,使测试执行更有针对性。
使测试输出更简洁:忽略目录有助于保持测试结果输出的简洁和有条理。你可以避免测试报告中充斥着无关信息。
简化维护工作:忽略特定目录可以更轻松地维护和更新测试。你可以将测试工作集中在项目的特定区域,而不受无关文件的干扰。
采用这一功能不仅可以优化测试策略,还有助于实现更高效、快速的开发过程。
在了解了忽略目录的好处后,让我们通过一个简单的例子来探讨如何在 Pytest 中实现这一功能。
实际示例
我们的示例代码结构如下:
.├── .gitignore
├── README.md
├── pytest.ini
├── requirements.txt
├── tests
│ ├── __init__.py
│ ├── in_progress
│ │ └── test_in_progress_modules.py
│ ├── upcoming_modules
│ │ └── test_upcoming_modules.py
│ └── test_converter.py
└── src└── converter.py
示例代码
我们的示例代码是一个简单的度量单位转换器。
src/converter.py
def centimeter_to_meter(c: float) -> float:"""厘米转米的函数"""return c / 100def meter_to_centimeter(m: float) -> float:"""米转厘米的函数"""return m * 100def foot_to_inch(f: float) -> float:"""英尺转英寸的函数"""return f * 12def inch_to_foot(i: float) -> float:"""英寸转英尺的函数"""return i / 12def meter_to_millimeter(i: float) -> float:"""米转毫米的函数开发中"""# return i / 12
这里有四个用于转换米、厘米、英尺和英寸的方法,还有一个正在开发中的函数。
测试代码
tests/test_converter.py
from src.converter import (centimeter_to_meter,meter_to_centimeter,foot_to_inch,inch_to_foot,
)
import pytestdef test_centimeter_to_meter():assert centimeter_to_meter(100) == 1def test_meter_to_centimeter():assert meter_to_centimeter(1) == 100def test_foot_to_inch():assert foot_to_inch(1) == 12def test_inch_to_foot():assert inch_to_foot(12) == 1@pytest.mark.skip(reason="Function not implemented yet")
def test_millimeter_to_centimeter():assert millimeter_to_centimeter(10) == 1@pytest.mark.xfail(reason="Function expected to fail")
def test_centimeter_to_millimeter():assert centimeter_to_millimeter(10) == 1
注意,我们在 test_millimeter_to_centimeter()
函数上使用了 @pytest.mark.skip
标记,因为目标函数尚未完成。
此外,我们在 test_centimeter_to_millimeter()
函数上标记了 @pytest.mark.xfail
,因为我们还没有开发 centimeter_to_millimeter()
函数,预计该测试会失败,或者可能存在需要解决的 bug。
为了模拟测试排除,让我们创建一个in_progress
文件夹,用于存放仍在开发中的测试,再创建一个 upcoming_modules
文件夹,用于存放我们计划不久后开发的函数的测试。
tests/in_progress/test_in_progress_modules.py
# 此目录包含正在开发中的模块的测试。# 开发尚未完成。因此我们可以跳过这个目录。
def test_meter_to_millimeter():pass
tests/upcoming_modules/test_upcoming_modules.py
# 即将开发的函数def test_kilometer_to_meter():pass# 即将开发的函数
def test_meter_to_kilometer():pass
在 Pytest 中忽略目录 / 测试的三种方法
使用命令行选项
跳过不需要的测试目录最简单的方法是使用 Pytest 的 --ignore
命令行选项。这个选项允许你在测试期间排除特定的目录。
对于我们的示例代码,你可以这样编写命令行命令:
pytest --ignore=tests/in_progress --ignore=tests/upcoming_modules
要忽略目录中的某些文件,你可以使用以下命令行命令:
pytest --ignore=tests/in_progress/test_in_progress_modules.py
这里,我们只忽略了 tests/in_progress
目录中的 test_in_progress_modules.py
文件。
这种方法适用于你只想临时忽略某个特定目录的情况。但显然,它不是永久排除目录的最佳选择,而且每次都要记住这些命令会很麻烦。
使用配置文件
当需要排除多个目录时,选择配置文件是比编写冗长的命令行指令更方便的方法。
利用 Pytest 的默认配置文件 pytest.ini
,你可以轻松指定要忽略的目录,如下所示:
[pytest]testpaths =testsintegration
addopts = -v # 指定要忽略的目录
norecursedirs = tests/in_progress tests/upcoming_modules
这里我们使用了 norecursedirs
关键字来忽略目录。但你也可以使用 addopts
关键字来实现相同的效果。
addopts = --ignore=tests/in_progress --ignore=tests/upcoming_modules
要忽略目录中的某些文件,你可以使用:
addopts = --ignore=tests/in_progress/test_in_progress_modules.py
这里,我们只忽略了 tests/in_progress
目录中的 test_in_progress_modules.py
文件。
当你需要永久从测试中排除目录时,这种方法很有用。
除了 pytest.ini
,你还可以使用其他配置文件,如 setup.cfg
、tox.ini
和 pyproject.toml
来定义 Pytest 配置。以下指南展示了如何使用各种文件定义 Pytest 配置。
使用标记(针对单个测试)
标记是对测试进行分类和定制的便捷工具。作为注解,标记可以附加到函数、方法或类上,为你的测试提供额外的信息。
要处理单个测试,你可以应用 @pytest.mark.skip
或 @pytest.mark.xfail
等标记。
@pytest.mark.skip
装饰器表示跳过该测试,而 @pytest.mark.xfail
标记表示该测试预计会失败。
在我们的示例代码中:
tests/test_converter.py
import pytest@pytest.mark.skip(reason="Function not implemented yet")
def test_millimeter_to_centimeter():assert millimeter_to_centimeter(10) == 1@pytest.mark.xfail(reason="Function expected to fail")
def test_centimeter_to_millimeter():assert centimeter_to_millimeter(10) == 1
这使你可以根据自己的需求控制特定测试的行为。
当你需要经常忽略某些测试或目录时,我建议使用配置文件。这种方法可以避免每次都输入冗长的命令行指令。然而,当需要忽略单个测试时,使用标记是最佳选择。
你还可以应用自定义标记,如 @pytest.mark.smoke
、@pytest.mark.regression
或 @pytest.mark.slow
来对你的测试进行分类,
运行测试
你可以使用以下命令运行测试:
pytest
或者,你也可以通过命令行命令忽略目录:
pytest -v --ignore=tests/in_progress --ignore=tests/upcoming_modules
这两种方法会产生相同的输出:
pytest-ignore-directory-example-result
你会看到有 1 个测试被跳过,1 个测试预计会失败,这对应了我们测试代码中前面提到的测试。此外,tests/in_progress
和 tests/upcoming_modules
目录被忽略了,因为我们通过命令行或配置文件指示 Pytest 这样做。
为代码覆盖率忽略文件
Pytest 覆盖率报告提供了已验证代码的百分比度量。要生成覆盖率报告,你可以使用 pytest-cov
或 coverage
插件,它们可以在终端中生成报告,也可以生成美观的 HTML 文件,甚至可以在你的 GitHub 仓库上显示一个漂亮的徽章。
许多公司在拉取请求(PR)或持续集成(CI)过程中要求进行覆盖率报告检查。你可能会认为覆盖率报告只是衡量代码质量的一种表面指标,但它是确保你编写的代码有良好测试覆盖率的好方法。
如果你需要从覆盖率报告中排除特定的目录或文件,可以打开 .coveragerc
文件。使用 omit
关键字指定你要忽略的目录或文件。以下是一个示例:
[run]omit =# 忽略 /in_progress 目录下的所有内容/in_progress/*# 忽略这个单个文件tests/simple_tests.py
在上述配置中,我们排除了整个 /in_progress/*
目录以及测试文件 tests/simple_tests.py
。请注意,这些路径是相对于项目根目录的。
这种灵活性使你能够根据项目的特定需求自定义覆盖率报告。这篇关于 Pytest 代码覆盖率的综合教程将教你如何实现代码覆盖率。
忽略目录时的常见问题
在忽略目录时,你可能会遇到以下挑战:
遗漏重要测试:在不检查目录内测试的情况下忽略目录,可能会导致排除关键测试,从而将潜在的 “有缺陷代码” 发布到生产环境中。
测试碎片化:忽略目录可能会导致测试过程出现中断或漏洞。在为了提高效率而排除不必要的测试和确保全面的测试覆盖之间取得平衡至关重要。
保持配置一致性:在协作的 CI/CD 环境中,确保不同开发环境中被忽略目录的配置一致至关重要。
目录结构变化:当项目结构频繁变化时,被忽略的目录可能会带来挑战。在这种情况下,可能需要调整测试配置以适应不断变化的项目布局。
复杂的配置管理:随着被忽略目录数量的增加,管理配置文件和命令行参数可能会变得更加复杂。有效地应对这种复杂性对于保持简化的测试过程至关重要。
忽略目录的最佳实践
让我们来了解一些在忽略目录时应遵循的技巧和方法:
利用配置文件:当需要永久排除目录时,选择配置文件。这样可以确保每次运行测试时自动排除不必要的目录,而不像命令行命令那样容易被忘记或输入错误。
记录被忽略的目录:清楚地记录为什么要忽略某些目录。为从测试中排除特定目录提供详细的解释,为团队提供有价值的上下文信息。
保持 CI/CD 管道的一致性:通过采用标准配置来标记被忽略的目录,确保 CI/CD 管道的一致性。这种方法可以提高测试的可靠性和可重复性。
考虑测试依赖关系:注意不同目录中测试之间的依赖关系。忽略一个目录可能会对其他目录中的测试产生影响。理想情况下,测试应该是独立且分离的。如果你需要共享夹具,可以在本地目录中创建一个
conftest.py
文件并进行共享。定期审查和更新:随着项目的发展,某些目录可能会重新变得与测试相关。定期审查和更新被忽略目录的列表,以使其与项目不断变化的需求保持一致。
通过采用这些最佳实践,你可以有效地利用 Pytest 的忽略目录功能,确保维护一个强大而全面的测试套件。
总结
我们对 Pytest 忽略目录功能的探索就到这里。
本文简要介绍了在 Pytest 中忽略目录的方法,并强调了它在开发过程中的好处。通过一个实际示例,你了解了如何通过不同的方法(命令行、配置文件和标记)使用 Pytest 的忽略目录功能。你深入探讨了从代码覆盖率中排除测试的细节,提及了忽略目录相关的常见问题,并分享了一些提高目录排除效率的宝贵最佳实践。
本文提供了三种在测试执行期间忽略目录的方法。如果你只想在单次测试运行中排除某个目录,选择命令行命令是理想的。如果你想永久从测试中排除目录,使用配置文件是正确的选择。此外,标记为轻松跳过单个测试提供了便捷的工具。
希望这些见解能让你更有信心,利用 Pytest 的忽略目录选项来提升测试执行效率!
相关文章:
详解在Pytest中忽略测试目录的三种方法
关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 你是否曾因无关或过时的代码导致测试失败? 这可能会增加调试和故障排除…...
ZoneMinder index.php存在SQL注入漏洞(CVE-2024-43360)
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...
【DeepSeek】DeepSeek概述 | 本地部署deepseek
目录 1 -> 概述 1.1 -> 技术特点 1.2 -> 模型发布 1.3 -> 应用领域 1.4 -> 优势与影响 2 -> 本地部署 2.1 -> 安装ollama 2.2 -> 部署deepseek-r1模型 1 -> 概述 DeepSeek是由中国的深度求索公司开发的一系列人工智能模型,以其…...
webGL
WebGL:3D图形的网络标准 WebGL(Web Graphics Library)是一种3D绘图协议,它允许开发者在不需要任何插件的情况下,在网页浏览器中创建交互式2D和3D效果。WebGL是基于OpenGL ES的JavaScript API,它可以为HTML5…...
电脑远程控制vivo手机,切换按钮就能让vivo仅投屏、不受控制!
Linux系统在全球的市场份额并不高,继而很多便捷的软件都没有Linux的版本。如果想要用Linux远程控制安卓手机,找软件会比较麻烦,但是AirDroid网页版可以做到。 以vivo手机为例子,接下来讲解Linux系统电脑要远程控制安卓手机时&…...
MS17-010(永恒之蓝1.0)漏洞远程控制win7系统操作实战小白通俗易懂
1.准备环境win7操作系统(被攻击机)以及kali系统(攻击机),kali使用msf工具进行攻击。 2.打开kali终端,进入msf,输入msfconsole然后等待启动。 ┌──(root㉿kali-chifan)-[~] └─# msfconsole…...
【Java计算机毕业设计】基于Springboot+Vue社区志愿者管理系统【源代码+数据库+LW文档+开题报告+答辩稿+部署教程+代码讲解】
源代码数据库LW文档(1万字以上)开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统:Window操作系统 2、开发工具:IntelliJ IDEA或者Eclipse 3、数据库存储:…...
三次握手,四次挥手,服务器模型(多进程并发,线程),基于套接字的UDP通信
三次握手: 第一次握手:客户端向服务器发送SYN待确认数据x, 客户端进入SYN_SEND状态 第二次握手:服务器向客户端回传一条ACK应答数据x1, 同时发送一条SYN待确认数据y,服务器进入SYN_RECV状态 第三次握手:客户端向服…...
通讯录管理小程序
通讯录管理系统 是对c基础语法的巩固,比较简单的一个小程序,重点在于养成良好的c代码习惯。 通讯录是一个可以记录亲人、好友信息的工具。 本教程主要利用C来实现一个通讯录管理系统 下面是一些需要实现的功能: 1. 添加联系人 功能描述&…...
[ESP32:Vscode+PlatformIO]添加第三方库 开源库 与Arduino导入第三方库的区别
前言 PlatformIO与Arduino在添加第三方库方面的原理存在显著差异 在PlatformIO中,第三方库的使用是基于项目(工程)的。具体而言,只有当你为一个特定的项目添加了某个第三方库后,该项目才能使用该库。这些第三方库的文…...
SpringSecurity:授权服务器与客户端应用(入门案例)
文章目录 一、需求概述二、开发授权服务器1、pom依赖2、yml配置3、启动服务端 三、开发客户端应用1、pom依赖2、yml配置3、SecurityConfig4、接口5、测试 一、需求概述 maven需要3.6.0以上版本 二、开发授权服务器 1、pom依赖 <dependency><groupId>org.springfr…...
k8s证书过期怎么更新?
在 Kubernetes 集群中,证书过期可能导致集群不可用,尤其是 API Server、Controller Manager、Scheduler 等组件所使用的证书。为了恢复集群的正常运行,您需要更新这些证书。以下是更新 Kubernetes 证书的基本步骤: 1. 检查证书状…...
【戒抖音系列】短视频戒除-1-对推荐算法进行干扰
如今推荐算法已经渗透到人们生活的方方面面,尤其是抖音等短视频核心就是推荐算法。 【短视频的危害】 1> 会让人变笨,慢慢让人丧失注意力与专注力 2> 让人丧失阅读长文的能力 3> 让人沉浸在一个又一个快感与嗨点当中。当我们刷短视频时&#x…...
VUE 集成企微机器人通知
message-robot 便于线上异常问题及时发现处理,项目中集成企微机器人通知,及时接收问题并处理 企微机器人通知工具类 export class MessageRobotUtil {constructor() {}/*** 发送 markdown 消息* param robotKey 机器人 ID* param title 消息标题* param…...
封装descriptions组件,描述,灵活
效果 1、组件1,dade-descriptions.vue <template><table><tbody><slot></slot></tbody> </table> </template><script> </script><style scoped>table {width: 100%;border-collapse: coll…...
等级保护2.0|网络安全服务
等级保护2.0|网络安全服务 定义 对于国家秘密信息、法人和其他组织及公民专有信息以及公开信息的存储、传输、处理这些信息系统分等级实行安全保护,对信息系统中发生的信息安全时间分等级响应、处置。 思想 对信息安全实行等级化保护和等级化管理 目标 突出重…...
STM32 RTC亚秒
rtc时钟功能实现:rtc模块在stm32内部,由电池或者主电源供电。如下图,需注意实现时仅需设置一次初始化。 1、stm32cubemx 代码生成界面设置,仅需开启时钟源和激活日历功能。 2、生成的代码,需要对时钟进行初始化,仅需…...
H5+CSS+JS制作好看的轮播图
先来看效果 点击下方按钮可以做到平滑切换轮播,轮播图片可以根据自定义随心变化。 先来看一下页面代码结构 <div class"container"><div class"lunbo-wrap"><div id"slide"></div><div class"butto…...
Win10 部署llama Factory 推荐教程和遇到的问题
教程 【大模型微调】使用Llama Factory实现中文llama3微调_哔哩哔哩_bilibili 大模型微调!手把手带你用LLaMA-Factory工具微调Qwen大模型!有手就行,零代码微调任意大语言模型_哔哩哔哩_bilibili 遇到问题解决办法 pytorch gpu国内镜像下载…...
Visual Studio踩过的坑
统计Unity项目代码行数 编辑-查找和替换-在文件中查找 查找内容输入 b*[^:b#/].*$ 勾选“使用正则表达式” 文件类型留空 也有网友做了指定,供参考 !*\bin\*;!*\obj\*;!*\.*\*!*.meta;!*.prefab;!*.unity 打开Unity的项目 注意:只是看࿰…...
idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡
idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡 问题 idea编译器 安装copilot AI工具 实际操作 在 IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤如下: 打开 IntelliJ IDEA: 打开你的 IntelliJ IDEA 应用…...
Leetcode 3449. Maximize the Minimum Game Score
Leetcode 3449. Maximize the Minimum Game Score 1. 解题思路2. 代码实现 题目链接:3449. Maximize the Minimum Game Score 1. 解题思路 这一题思路上就是一个二分法,尝试各个score,看看是否可以满足在给定的m次操作限制下,使…...
DeepSeek深度思考:客户端(Android/iOS)架构设计指南
目标读者:中高级开发者、架构师 适用场景:大型复杂应用开发、跨团队协作、长期维护迭代 一、架构设计核心原则 1.模块化(Modularization) 横向拆分:按功能边界划分(如登录、支付、消息模块)纵向…...
智能理解 PPT 内容,快速生成讲解视频
当我们想根据一版 PPT 制作出相对应的解锁视频时,从撰写解锁词,录制音频到剪辑视频,每一个环节都需要投入大量的时间和精力,本方案将依托于阿里云函数计算 FC 和百炼模型服务,实现从 PPT 到视频的全自动转换࿰…...
HTML 颜色值
HTML 颜色值 引言 在网页设计和开发中,颜色是一个重要的元素,它能够影响用户的视觉体验和网站的视觉效果。HTML 颜色值是网页设计中用来指定文本、背景或其他元素颜色的标准。本文将详细介绍 HTML 颜色值的概念、类型、表示方法以及在实际应用中的注意事项。 HTML 颜色值的…...
kafka消费端之消费者协调器和组协调器
文章目录 概述回顾历史老版本获取消费者变更老版本存在的问题 消费者协调器和组协调器新版如何解决老版本问题再均衡过程**第一阶段CFIND COORDINATOR****第二阶段(JOINGROUP)**选举消费组的lcader选举分区分配策略 第三阶段(SYNC GROUP&…...
【C++】解锁<list>的正确姿势
> 🍃 本系列为初阶C的内容,如果感兴趣,欢迎订阅🚩 > 🎊个人主页:[小编的个人主页])小编的个人主页 > 🎀 🎉欢迎大家点赞👍收藏⭐文章 > ✌️ 🤞 …...
【玩转全栈】----Django模板的继承
先赞后看,养成习惯!!! 目录 模板继承的好处 模板继承的语法规则 更新代码 上文中的部门管理页面: 【玩转全栈】----Django制作部门管理页面-CSDN博客 大家会发现,由于定义了多个html文件,多个ht…...
【紫光同创PG2L100H开发板】盘古676系列,盘古100Pro+开发板,MES2L676-100HP
本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com) 一:开发系统介绍 开发系统概述 MES2L676-100HP开发板采用紫光创 logos2系列 FPGA,型号&#x…...
Mac下使用brew安装go 以及遇到的问题
首先按照网上找到的命令进行安装 brew install go 打开终端输入go version,查看安装的go版本 go version 配置环境变量 查看go的环境变量配置: go env 事实上安装好后的go已经可以使用了。 在home/go下新建src/hello目录,在该目录中新建…...
活动预告 |【Part 2】Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁
课程介绍 通过 Microsoft Learn 免费参加 Microsoft 安全在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft Cloud 技术的了解。参加我们举办的“通过扩展检测和响应抵御威胁”技术公开课活动,了解如何更好地在 Microsoft 365 Defen…...
android的DataBinding简介
Android DataBinding 简介 DataBinding 是 Android Jetpack 中的数据绑定库,用于将 UI 组件直接与数据模型绑定,减少模板代码并实现双向数据同步。它通过声明式布局简化 UI 更新逻辑,常用于 MVVM(Model-View-ViewModel࿰…...
基于DeepSeek API和VSCode的自动化网页生成流程
1.创建API key 访问官网DeepSeek ,点击API开放平台。 在开放平台界面左侧点击API keys,进入API keys管理界面,点击创建API key按钮创建API key,名称自定义。 2.下载并安装配置编辑器VSCode 官网Visual Studio Code - Code Editing…...
【DeepSeek】私有化本地部署图文(Win+Mac)
目录 一、DeepSeek本地部署【Windows】 1、安装Ollama 2、配置环境变量 3、下载模型 4、使用示例 a、直接访问 b、chatbox网页访问 二、DeepSeek本地部署【Mac】 1、安装Ollama 2、配置环境变量 3、下载模型 4、使用示例 5、删除已下载的模型 三、DeepSeek其他 …...
vscode预览插件
在左侧列表拓展里搜索 Live Preview 安装,然后在html页面点击右键找到show Preview 结果如下图 然后就可以进行代码开发并实时预览了...
迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-编写应用APP
在应用代码中我们实现如下功能: 当应用程序启动后会获取命令行参数。如果命令行没有参数,LED 灯将循环闪烁;如果命令行带有参数,则根据传输的参数控制 LED 灯的开启或关闭。通过 HdfIoServiceBind 绑定 LED灯的 HDF 服务ÿ…...
在大型语言模型(LLM)框架内Transformer架构与混合专家(MoE)策略的概念整合
文章目录 传统的神经网络框架存在的问题一. Transformer架构综述1.1 transformer的输入1.1.1 词向量1.1.2 位置编码(Positional Encoding)1.1.3 编码器与解码器结构1.1.4 多头自注意力机制 二.Transformer分步详解2.1 传统词向量存在的问题2.2 详解编解码…...
tolua[一]框架搭建,运行example
一.安装tolua https://github.com/topameng/tolua 下载LuaFramework_UGUI的zip 将Assets目录拷贝到项目根目录下 提示确认注册,遇到这个对话框点确定即可 生成如下目录 二.LuaFramework->Build Windows Resource 接下来的目标是将这个main场景跑起来 需要先执行…...
大数据项目4:基于spark的智慧交通项目设计与实现
项目概述 项目直达 www.baiyuntu.com 随着交通数据的快速增长,传统的交通管理方式已无法满足现代城市的需求。交通大数据分析系统通过整合各类交通数据,利用大数据技术解决交通瓶颈问题,提升交通管理效率。本项目旨在通过大数据技术&#…...
Vue 响应式渲染 - 条件渲染
Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue响应式渲染 - 条件渲染 目录 条件渲染 v-if v-if-else 模版template 物流状态显示判断 设置数据 不同状态渲染 总结 条件渲染 v-if 使用Vue条件判断显示和 隐藏。 示例如下: <!DOCTYPE html> …...
活动预告 |【Part1】Microsoft Azure 在线技术公开课:AI 基础知识
课程介绍 参加“Azure 在线技术公开课:AI 基础知识”活动,了解 AI 核心概念。参加我们举办的本次免费培训活动,了解组织如何使用 AI 技术克服实际挑战,以及如何借助 Azure AI 服务构建智能应用程序。本次培训适用于任何对 AI 解决…...
OpenSIPS-Dispatcher模块详解:优化SIP流量分发的利器
在 OpenSIPS 中,dispatcher 模块用于实现负载均衡和故障转移。通过 dispatcher 模块,你可以将 SIP 请求分发到一组后端服务器(如媒体服务器、代理服务器等),并根据配置的算法和策略动态调整分发逻辑。 模块功能使用样…...
深入理解linux中的文件(下)
目录 一、语言级缓冲区和内核级缓冲区 二、C语音中的FILE* fp fopen(“./file.txt”,"w"): 四、理解磁盘结构: 物理结构 逻辑结构 五、未被打开的文件: 六、更加深入理解inode编号怎么找到文件: 七、对路径结构进行…...
Deepseek系列从v3到R易背面经版
deepseek v3 base要点 MTP : Multi-Token Prediction 训练时: 1. 把前一个block中input tokens经过embedding layer和transformer block的输出,进入output head之前的内容记为h,与下一个block的input tokens经过embedding layer输出的内容都…...
SQLAlchemy 的内存消耗
为何要研究SQLAlchemy 的内存消耗问题?因为SQLAlchemy在应用中,绝大多数问题体现在应用人员对SQLAlchemy 的内存消耗问题不认知、不重视、不处理,最终造成整个系统的大问题,使SQLAlchemy 的性能大打折扣,最终影响了SQL…...
Centos Ollama + Deepseek-r1+Chatbox运行环境搭建
Centos Ollama Deepseek-r1Chatbox运行环境搭建 内容介绍下载ollama在Ollama运行DeepSeek-r1模型使用chatbox连接ollama api 内容介绍 你好! 这篇文章简单讲述一下如何在linux环境搭建 Ollama Deepseek-r1。并在本地安装的Chatbox中进行远程调用 下载ollama 登…...
vscode和pycharm的区别
VSCode(Visual Studio Code)和 PyCharm 是两款常用的 Python 开发工具,它们在功能和使用体验上有一些关键区别: 1. 核心定位 VSCode:轻量级、多语言支持的代码编辑器,依靠插件扩展 Python 开发能力。PyCh…...
【0403】Postgres内核 检查(procArray )给定 db 是否有其他 backend process 正在运行
文章目录 1. 给定 db 是否有其他 backend 正在运行1.1 获取 allPgXact[] 索引1.1.1 MyProc 中 databaseId 初始化实现1.2 allProcs[] 中各 databaseId 判断1. 给定 db 是否有其他 backend 正在运行 CREATE DATABASE 语句创建用户指定 数据库名(database-name)时候, 会通过 …...
MySQL 数据库的体系架构
MySQL 数据库的体系架构是其高效、灵活和可扩展性的核心基础。其设计采用 分层模块化 结构,主要分为以下四层: 1. 连接层(Connectors & Connection Pool) 功能:负责处理客户端连接、认证和权限管理。 连接管理&a…...
【C++高并发服务器WebServer】-14:Select详解及实现
本文目录 一、BIO模型二、非阻塞NIO忙轮询三、IO多路复用四、Select()多路复用实现 明确一下IO多路复用的概念:IO多路复用能够使得程序同时监听多个文件描述符(文件描述符fd对应的是内核读写缓冲区),能够提升程序的性能。 Linux下…...