在VS Code中对Python进行单元测试
在VS Code中对Python进行单元测试
Python扩展支持使用Python的内置unittest框架以及pytest和Nose进行单元测试。要使用pytest和Nose,必须将它们安装到当前的Python环境中(即,在pythonPath
设置中标识的环境,请参阅环境)。
使用Python:Discover Unit Tests根据当前所选测试框架的发现模式扫描项目以进行测试(请参阅测试发现。一旦发现,VS Code提供了多种运行测试的方法(请参阅运行测试)。
单元测试输出显示在Python Test Log面板中,包括未安装测试框架时导致的错误。
提示:一个包含各种单元测试的有用存储库,应用于不同的排序算法,是https://github.com/gwtw/py-sorting。
启用和配置测试框架
默认情况下禁用单元测试。要启用单元测试,请将以下设置之一设置为true:
"python.unitTest.unittestEnabled": false,
"python.unitTest.pyTestEnabled": true,
"python.unitTest.nosetestsEnabled": false,
注意:一次只启用一个测试框架。
上面的示例启用了pytest,使unittest和Nose禁用。
每个框架还具有特定的配置设置,如以下部分所述:
Unittest配置设置
设置 (python.unitTest。) |
默认 | 描述 |
---|---|---|
unittestEnabled | false |
指定是否为单元测试启用UnitTest。 |
unittestArgs | ["-v", "-s", ".", "-p", "*test*.py"] |
传递给unittest的参数,其中由空格分隔的每个元素是列表中的单独项。有关默认值的说明,请参见下文。 |
CWD | 空值 | 指定单元测试的可选工作目录。 |
outputWindow | "Python Test Log" |
用于单元测试输出的窗口。 |
promptToConfigure | true |
指定VS代码是否在发现潜在测试时提示配置测试框架。 |
DEBUGPORT | 3000 |
用于调试UnitTest测试的端口号。 |
autoTestDiscoverOnSaveEnabled | true |
指定在保存单元测试文件时是启用还是禁用自动运行测试发现。 |
UnitTest的默认参数如下:
-v
设置默认详细程度。删除此参数以获得更简单的输出。-s .
指定用于发现测试的起始目录。如果您在“test”文件夹中进行了测试,则可以将其更改为-s test
("-s", "test"
在arguments数组中)。-p *test*.py
是用于查找测试的发现模式。在这种情况下,它.py
是包含单词“test” 的任何文件。如果以不同的方式命名测试文件,例如在每个文件名后附加“_test”,则使用类似于*_test.py
数组的相应参数的模式。
要在第一次失败时停止测试运行,请将fail fast选项添加"-f"
到arguments数组中。
有关完整的可用选项集,请参阅unittest命令行界面。
Pytest配置设置
设置 (python.unitTest。) |
默认 | 描述 |
---|---|---|
pyTestEnabled | false |
指定是否为单元测试启用PyTest。 |
pyTestPath | "py.test" |
PyTest的路径。如果PyTest位于当前环境之外,请使用完整路径。 |
pyTestArgs | [] |
传递给PyTest的参数,其中由空格分隔的每个元素都是列表中的单独项。请参阅PyTest命令行选项。 |
您还可以使用PyTest Configuration中pytest.ini
所述的文件配置pytest 。
注意 如果安装了pytest-cov coverage模块,则VS Code在调试时不会在断点处停止,因为pytest-cov使用相同的技术来访问正在运行的源代码。要防止此行为,请
--no-cov
在pyTestArgs
调试测试时包括。(有关更多信息,请参阅pytest-cov文档中的Debuggers和PyCharm。)
鼻子配置设置
设置 (python.unitTest。) |
默认 | 描述 |
---|---|---|
nosetestsEnabled | false |
指定是否为单元测试启用Nose。 |
nosetestPath | "nosetests" |
鼻子的路径。如果Nose位于当前环境之外,请使用完整路径。 |
nosetestArgs | [] |
传递给Nose的参数,其中由空格分隔的每个元素都是列表中的单独项。请参阅鼻子使用选项。 |
您还可以使用Nose配置中所述的.noserc
或nose.cfg
文件配置nose 。
测试发现
VS Code使用当前启用的单元测试框架来发现测试。您可以使用Python:Discover Unit Tests命令随时触发测试发现。使用Unittest,您可以将 python.unittest.autoTestDiscoverOnSaveEnabled
设置设置为true
在保存测试文件时运行测试发现。
测试发现应用当前测试框架的arguments选项中指定的发现模式。例如,unittest的默认参数包括-s . -p *test*.py
,意味着unittest以项目文件夹(-s .
)开头递归查找名称与*test*.py
pattern(-p *test*.py
)匹配的所有文件。您可以在之后指定不同的起始文件夹-s
,和/或之后指定其他模式-p
。
Pytest,它的一部分,具有用于确定其根文件夹和图案,如在所描述的算法pytest配置。
对于nose,使用-w=<folder>
和-m=<regex>
开关指定模式匹配的起始文件夹和正则表达式(请参阅Nose选项)。
提示:有时不会发现放置在子文件夹中的单元测试,因为无法导入此类测试文件。要使它们可导入,请尝试放置
__init__.py
在该文件夹中命名的空文件。
运行测试
使用以下任何操作运行测试:
选择
Run Tests
状态栏,然后选择一个像这样的命令Run All Tests
或Run Failed Unit Tests
。在资源管理器中右键单击文件并选择
Run Unit Tests
,该文件在该文件中运行测试。打开测试文件,然后选择
Run Test
出现在测试类或方法上方的代码镜头。此命令仅运行类中的那些测试或分别运行该测试方法。从命令选项板中,选择任何单元测试命令:
命令 | 描述 |
---|---|
运行所有单元测试 | 在工作区及其子文件夹中搜索并运行所有单元测试。 |
运行当前单元测试文件 | 在当前在编辑器中查看的文件中运行测试。 |
运行失败的单元测试 | 重新运行先前测试运行中失败的任何测试。如果尚未运行任何测试,则运行所有测试。 |
运行单元测试文件... | 提示输入特定的测试文件名,然后在该文件中运行测试。 |
运行单元测试方法...... | 提示要运行的测试名称,为测试名称提供自动完成功能。 |
显示单元测试输出 | 打开Python Test Log面板,其中包含有关传递和失败测试以及错误和跳过测试的信息。 |
调试测试
因为单元测试本身就是源代码,所以它们很容易出现代码缺陷,就像它们测试的生产代码一样。因此,您可能偶尔需要在调试器中单步执行单元测试。
在Python的:调试所有测试和Python的:调试单元测试方法...命令(在命令面板和状态栏菜单)分别启动调试器的所有测试和单一的测试方法。
下一步
在VS Code中对Python进行单元测试的更多相关文章
- VS Code中配置python版本以及Python多版本
VS Code中配置python版本VS Code十分方便配置python的版本:可以选在在本地setting.json或者全局setting.json文件中配置:python.pythonPath在 ...
- 微软发布 Pylance:改善 VS Code 中的 Python 体验
原标题:微软发布 Pylance:改善 VS Code 中的 Python 体验 来源:开源中国 微软宣布推出一种新的 Python 语言服务器,名为 Pylance,其可利用语言服务器协议与 VS ...
- 在Visual Studio Code 中配置Python 中文乱码问题
在Visual Studio Code 中配置Python 中文乱码问题 方法一:直接代码修改字符集 添加前四行代码 import io import sys #改变标准输出的默认编码 sys.std ...
- 在visual studio code 中配置python以及解决中文乱码问题
安装好 visual stuido code (下面简称 “ VSC ”)后,要想使用它运行调试 python 代码还需要做一些工作以解决下列问题: 搭建 python 环境 print 打印中文出现 ...
- 【vue】在VS Code中调试Jest单元测试
在VS Code中调试Jest单元测试 添加调试任务 打开 vscode launch.json 文件,在 configurations 内加入下面代码 "configurations&qu ...
- VS Code中python代码自动格式化 代码自动检查
VS Code菜单栏中依次打开 File—Preferences—Settings,搜索框中搜索“python.formatting.provider”, 然后在下拉菜单中选择autopep8,yap ...
- Python的单元测试(二)
title: Python的单元测试(二) date: 2015-03-04 19:08:20 categories: Python tags: [Python,单元测试] --- 在Python的单 ...
- Python自动单元测试框架
原文链接:http://www.ibm.com/developerworks/cn/linux/l-pyunit/ 软件的测试是一件非常乏味的事情,在测试别人编写的软件时尤其如此,程序员通常都只对编写 ...
- [转] Python自动单元测试框架
一.软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施.正像软件熵(software ...
随机推荐
- AAA游戏中雪的实现
现在越来越多的AAA游戏中都实现了逼真的雪的效果,比如战神4.地平线:黎明时分.荒野大镖客:救赎2.古墓丽影:崛起等都实现了不错的雪地效果.今天我们就来探究一下他们的实现方式.现在主流的实现方式都是通 ...
- IE8以下浏览器设置Title的问题
ie8不支持网页title的如下写法 $('title').text('标题'); $('title').html('标题'); 在ie8中,正确写法: document.title = &quo ...
- Eclipse通用设置
分类 Eclipse分为64位.32位,安装版.免安装版 查看Eclipse版本信息 Help - About Eclipse - Installation Details
- ANR异常及traces信息解析
Application Not Responding:默认情况下,在android中Activity的最长执行时间是5秒,BroadcastReceiver的最长执行时间则是10秒.超出就会提示应用程 ...
- oracle查询所有的表明
如果是用该用户登录使用以下语句: SELECT * FROM USER_TABLES; 如果是用其他用户: SELECT * FROM ALL_TABLES WHERE OWNER='USER_NAM ...
- [ VB ] OrElse, AndAlso [ C# ] ||, && 运算符
条件演算子も当然のように C# と VB では記述方法が異なる.比較すると下表のようになる. VB C#OrElse ||AndAlso &&a ...
- 移动端中遇到的坑(bug)!!!
1.模拟单选点击的时候,在ios手机下,点击下面的内容选择,会出现页面闪一闪!! 解决方案:样式重置html的时候加上这句 -webkit-tap-highlight-color: rgba(0, ...
- zabbix3.0.4通过自定义shell脚本添加对关键日志文件的监控
zabbix添加对自定义无规则日志文件的监控 项目背景及思路: zabbix自带有针对日志文件的监控,自带的监控只能监控到指定文件或者正则匹配的固定日志文件,但当需要监控的文件名没有规律的时候自带监控 ...
- centos6.5环境disconf管理端安装配置详解
操作系统:centos6.5 x86_64 安装目录/data 1.安装nginx1.10.1 rpm -ivh http://nginx.org/packages/centos/6/noarch/R ...
- activit流程引擎启动流程报错
代码如下: 目录结构 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); @Test public void ...