摘要:单位测试框架是标准库,也是其他单元测试框架的基础。 单位测试可以写入与单位测试合并并与单位测试一起使用。 官方网站地址单元测试覆盖范围工具代码覆盖工具也需要单位测试。 代码覆盖统计工具用于发现测试未涵盖的代码并改善单位测试的覆盖范围。
在应用程序中,单元是一个或多个输入和一个输出的软件的可测试部分。 单元测试是一种测试通常包含一个或两个输入(生成输出)的软件代码单元的方法。 单元测试的重点是独立模块的功能正确性,目的是确保每个单元按预期工作。
要运行单元测试,开发人员必须编写测试代码。 单位测试有两种类型:手动和自动化。 自动化通常是首选方法,为开发人员节省了很多时间和精力。
单元测试是自动测试金字塔模型中最大的测试类型。 做一个好的单元测试工作以确保软件产品的质量非常重要。 单元测试:
早期发现软件缺陷并提早修复
单位测试中发现的固定缺陷会影响其他模块
易于模块集成
降低缺陷率和时间成本
接下来,单位测试框架不仅有效,而且可以使用模拟工具,代码覆盖工具和两个智能单位测试案例自动生成工具:
junit
testng
googletest
pytest
unittest
jmockit
jacoco
gcov,lcov,gcovr
coverage
evOsuite
diffblue盖
单元测试框架
当前成熟的单元测试框架是它如下: testng,gtest,pytest,Unitest。
1) Junit是由肯特·贝克(Kent Beck)和埃里希·伽马(Erich Gamma)创立的为Java编程语言设计的开源单元测试框架。 这是统称为Xunit的单元测试框架的家族之一,Junit是Xunit家族中最成功的成员。 Junit拥有自己的Junit扩展生态系统,大多数Java开发环境将Junit作为单元测试工具集成。 Junit的最新版本是Junit 5。 尽管它不是一个JAR包,但它包括三个部分:Junit Platform(Platform),Junit Jupiter和Junit Vintage。
官方网站地址:https://junit.org/junit5/
2)testng
testng是为Java编程语言设计的另一个开源单元测试框架。 测试框架的灵感来自Junit和Nunit,但引入了一些新功能,以使其更强大,更易于使用。
核心函数是多线程测试执行,它测试了测试。 代码是多线的安全性;
添加了评论支持;
支持强大的执行模型(不再是测试套件)。 /p>
品牌它拥有多种工具和插件(Eclipse,Idea,Maven等)。
嵌入在豆腐中以提高灵活性。
运行时和记录功能默认JDK(无依赖关系)。
官方网站地址:https://testng.org/
3)googletest
googletest是一个跨平台(liunx,mac os x,windows,cygwin,cygwin,windows ce,symbian)。 用于在各个平台上创建C ++测试。 它提供了大量的主张,致命和非致命判断,参数化,“死亡测试”等。 例如,
testCase本身是一个EXE项目,可以在编译后立即运行。 这很方便。
创建测试用例非常容易(使用简单的宏(例如测试),因此它花费更多的精力来设计测试用例。
提供功能强大且丰富的断言宏来检查各种检查点。
已改进了丰富的命令行参数,以为脚本操作创建一组设置。
代码开源地址:https://github.com/google/googletest
4)pytest
pytest是一个支持Python语言的高度成熟,功能齐全的单元自动化测试框架。 它简单,灵活,易于使用,并支持参数化。 它可以支持简单的单元和复杂的功能测试,还可以运行自动测试,例如硒/APPNIUM和接口自动化测试(PYTEST集成请求)。
官方网站地址:http://pytest.org/
5)unittest
Unittest是Python随附的单位测试框架。 它不需要安装且易于使用。 可以通过安装软件包导入Unitest来使用它。 独立的单元测试框架作为Python中的标准库是其他单元测试框架的基础。
官方网站地址:http://docs.python.org/zh - cn/3/library/unittest.html
单元测试模拟工具
执行单元测试时,需要测试的类中有许多依赖关系,并且这些依赖关系具有依赖关系。带单位测试的结构。 代码。 因此,必须使用模拟技术来分开因对象,即模拟需要构造的这些类或资源,并将它们提供给需要测试的对象。
6) Jmockit是用于Java语言单元测试的开源模拟工具,包括工具和API的集合。 JMockit可以与Junit和Testng一起使用单元测试。
jmockit在班级级别上支持整体和部分方法,以及在实例级别的整体和部分模拟。
此工具还具有统计单元测试代码覆盖范围,提供了三种类型的代码覆盖范围:行覆盖,路径覆盖范围和数据覆盖范围。
官方网站地址:http://jmockit.org/
单元测试覆盖范围工具
>单位测试也需要使用代码覆盖工具。 代码覆盖范围用于测量单位测试期间被覆盖的指标。 代码覆盖统计工具用于发现测试未涵盖的代码并改善单位测试的覆盖范围。 此外,这种类型的工具可用于构建代码调用关系,准确确定回归测试的范围,并避免浪费由完全回归引起的测试资源。
7) Jacoco是Eclemma创建的开源,免费的Java代码覆盖范围工具。 它的用法是灵活的,可以嵌入蚂蚁和胸骨中。 它可以用作Eclipse插件,可用于使用Java代理技术等等来监视Java程序。 许多第三方工具都提供Jacoco集成,例如Sonar,Jenkins等。
jacoco包含多个尺度的覆盖量计数器:
指令,c0 coverage)
分支,c1coverage)
cyclomationplexity
lines
lines
/p>
方法
non -摘要方法
经典覆盖范围(类)
公式网站地址:https://www.jacoco .org/jacoco/
8)gcov,lcov,gcovr
GCOV,LCOV和GCOVR都是支持C/C ++语言代码覆盖的工具。
GCOV是GCC的内置代码覆盖生成工具。 可以与GCC编译器方便使用。 通常,GCC工具链直接安装。 这还包括GCOV命令行工具。 。 GCOV结果它是以文本格式的,如果各种源代码文件需要一一运行GCOV命令,则对于大型项目来说是不便的,目前需要LCOV。
LCOV是GCOV工具的图形前端,可从多个源文件中收集GCOV数据并生成描述覆盖范围的HTML页面。 生成的结果包括一个易于查看的概述页面。
GCOV和LCOV在典型的情况下,您可以满足代码覆盖范围的获取和显示。 LCOV和GENHTML生成的HTML报告详细,简洁而直观,既有线路覆盖率又具有分支覆盖范围,但是HTML文件通常是使用连续集成工具(Jenkins,Gitlab - CI)的使用。 其他工具,可连续整合覆盖范围的结果。 GCOVR是一种针对C/C ++代码覆盖范围并支持多种方法的工具(包括列表方法,XML文件方法,HTML网页方法等)和XML文件是连续的集成工具。
lcov下载地址:https://github.com/linux - test - project/lcov
gcovr下载地址:https://github.com/gcovr /gcovr
9)coverage.py
coverage.py.py这是用于测量Python语言覆盖范围的工具。 Coverage.py可以通过配置文件指定要分析要分析的源文件。 通过分析源代码,您可以看到该代码尚未被测试覆盖。
官方网站地址:https://coverage.readthedocs.io
智能自动单位测试案例生成工具
单位测试的重要性是毫无疑问的,但在许多公司中并没有很好地实施。 非常重要的原因是开发人员不想花时间编写单元测试代码。 现在有两个建议的智能工具可以自动生成单元测试案例,改善单位测试覆盖范围并提高企业的研发效率。
10)evosuite
EvoSuite是由英国谢菲尔德(Sheffield)等大学共同开发的开源工具。 它用于自动生成一组测试用例。 生成的测试用例符合JUNIT标准,可以直接在Junit运行。 我有Google和Yourkit。 支持。 这种自动测试工具使您可以确保代码覆盖范围,同时显着提高测试人员开发的效率。 但是,他们只能支持测试,并且不能完全替代体力劳动。 您必须手动确定测试用例是否正确。
官方网站地址:https://www.evesuite.org/
开放量源代码地址:https://github.com/evosuite/evesuite/evesuite
<p <p
11)diffblue封面
diffblue封面是对java的自动分析测试写作工具会创建反映当前行为,改善测试覆盖范围的单元测试,并帮助开发人员在未来的代码更改中发现回归中的缺陷。
插件开源社区版本地址:https://plugins.jetbrains.com/plugin/14946 - diffblue - cover [k4 k4] community - edition/vertion/version <//////なったんです。英语:您可以做的第一件事是找到最佳的工作。
评论前必须登录!
注册