精华内容
下载资源
问答
  • 测试代码

    千次阅读 2018-12-21 10:48:02
    接下来将要学习如何使用python模块unittest中的工具来测试代码。 一、测试函数 要学习测试,得有测试的代码。下面是一个简单的函数,他接受名和姓并返回整洁的姓名: name_function.py def get_formatted_name...

    编写函数或类是,还可以为其编写测试。通过测试,可确定代码面对各种输入都能够按要求的那样工作。接下来将要学习如何使用python模块unittest中的工具来测试代码。

    一、测试函数

    要学习测试,得有测试的代码。下面是一个简单的函数,他接受名和姓并返回整洁的姓名:

    name_function.py


    def get_formatted_name(first,last):
        full_name = first + " " + last
        return full_name.title()

    为核实get_formatted_name像期望那么工作,我们来编写一个使用这个程序的函数:

    names.py


    from name_function import get_formatted_name
    
    print("Enter 'q' at any time to quit.")
    while True:
        first = input("\nplease give me a first name:")
        if first == 'q':
            break
        last = input("please give me a last name:")
        if last == 'q':
            break
        
        formatted_name = get_formatted_name(first, last)
        print("\tNeatly formatted name: " + formatted_name + ".")

    运行结果如下:



     从上述运行结果可知,合并得到的姓名准确无误。现在假设我们要修改get_formatted_name(),使其还能够处理中间名。这样做时,我们要确保不破坏这个函数处理只有姓和名的姓名的方式。为此,我们可以在每次修改get_formatted_name后进行测试:运行names.py,并输出像Jains Joplin这样的姓名,但是太繁琐了。所幸python提供了一种自动化测试函数输出的高校方式。倘若我们对get_formatted_name()进行自动化测试时,就能自信满满。

    (一)单元测试和测试用例

    Python标准代码库中的模块unittest提供了代码测试工具。

    单元测试:用于核实函数的某个方面没有问题;

    测试用例:是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。良好的测试用例考虑到了函数可能收到的各种输入,包括针对所有这些情形的测试。

    全覆盖式测试:用例包括一整套单元测试,涵盖了各种可能的函数的使用方式。

    (二)、可通过的测试

    创建测试用例的语法需要一段时间才能习惯,但是测试用例创建后,再添加针对函数的单元测试就很简单了。要为函数编写测试用例,可先导入模块unittest以及要测试的函数,在创建一个继承unittest.TestCase的类,并编写一系列方法对函数行为的不同方面进行测试。

    下面是一个只包含一个方法的测试用例,它检查函数get_formatted_name()在给定名和姓时候能否正常的工作:


    import unittest
    
    from name_function import get_formatted_name
    
    class NamesTestCase(unittest.TestCase):
        """测试name_function.py"""
        def test_first_last_name(self):
            """能够正确的处理像Jains Joplin这样的姓名"""
            formatted_name = get_formatted_name('janis','joplin')
            self.assertEqual(formatted_name, 'Janis Joplin')
            
    unittest.main()

    1.导入模块unittest和要测试的函数get_formatted_name()

    2.命名一个名为NameTestCase的类,用于包含一系列针对get_formatted_name()的单元测试。你可随便命名,但最好是看起来与要测试的函数有关系,并包含Test字样。这个类必须继承unittest.TestCase类,这样python才知道要如何运行你编写的程序。

    3.NamesTestCse只包含一个方法,用于测试get_formatted_name()的一个方面。我们将这个方法命名为test_first_last_name(),因为我们要核实的只有名和姓是否能够正确被格式化。我们运用test_name_function.py时,所有以test_打头的方法都将自动运行。

    4.使用unittest类最有用的功能之一:一个断言方法。断言方法是用来核实得到的结果是否与期望一致。

    运行结果如下:



    注:第一行的句点表示有一个测试通过了,接下来 的一行指出python运行了一个测试,消耗的时间不到0.001秒。最后的OK表示该测试用例的所有单元测试都通过了

    (三)、不能通过的测试

    修改函数get_formatted_name()


    def get_formatted_name(first,middle,last):
        full_name = first + " " + middle + " " + last
        return full_name.title()

    运行结果如下:



    注:

    1.第一行输出字母E,指出测试用例有一个单元测试导致了错误。

    2.第二行可以看到NameTestCase中的test_first_last_name导致了错误。测试用例包括众多单元测试时,知道那个测试未通过就很重要。

    3.第三行我们看到traceback,他指出函数调用get_formatted_name时出错

    (四)、测试未通过怎么办

     如果你检查的条件没有错误,测试通过意味着函数的行为是对的,测试通过意味着函数的行为是对的,而测试未通过意味着你编写的新代码有问题。因此,测试未通过时,不要修改测试,而应反复修改导致测试不能通过的代码:检查刚才函数做出的修改,找出不符合预期的修改。

    在这个示例中,get_formatted_name()以前只需要两个实参--名和姓,但现在他要求提供名、中间名和姓。新增的中间名参数是必不可少的,这导致get_formatted_name()的行为不符合预期。就这里而言,最佳的选择是让中间名变为可选的。这样后,使用类似于Jains Jpolin的姓名进行测试时,测试就会通过,同时这个函数还能接受中间名。下面来修改get_formatted_name(),将中间名设置为可选的,然后在运行测试用例。

    要将中间名变为可选的,可在函数定义中将形参middle移到形参列表末尾,并将其默认值指定为一个空字符。我们还要加一个if测试:

    name_function.py


    def get_formatted_name(first,last,middle=""):
        if middle :
            full_name = first + " " + middle + " " + last 
        else:
            full_name = first + " " + last 
            
        return full_name.title()

    (五)、添加新测试

    确定get_formatted_name()又能正确的处理简单的姓名后,我们在编写一个测试,用于测试包含中间名的姓名。为此,我们在NamesTestCase类中再添加一个方法:


    import unittest
    
    from name_function import get_formatted_name
    
    class NamesTestCase(unittest.TestCase):
        
        def test_first_last_name(self):
            formatted_name = get_formatted_name('janis','joplin')
            self.assertEqual(formatted_name, 'Janis Joplin')
            
        def test_first_middle_last_name(self):
            formatted_name = get_formatted_name('wolfgang', 'mozart', 'amadeus')
            self.assertEqual(formatted_name,'Wolfgang Amadeus Mozart')
            
    unittest.main()

    运行结果如下:



     

    展开全文
  • VS2019配置opencv详细图文教程和测试代码

    万次阅读 多人点赞 2019-05-24 13:05:55
    摘要: ...测试代码请在原文找到,转发备注原文链接:https://blog.xygeng.cn/post/219.html 环境: 系统:win10系统截至20190523版本 opencv版本:3.4.1版本 IDE:宇宙最强IDEA最新版本2...

    摘要:


    vs2019新鲜出炉,配置opencv又有哪些不一样呢,这个教程将会一步一步的教你如何配置opencv和跑动opencv一个简单的项目。

    测试代码请在原文找到,转发备注原文链接:https://xygeng.cn/post/151.html

    环境:


     

    系统:win10系统截至20190523版本

    opencv版本:3.4.1版本

    IDE:宇宙最强IDEA最新版本2019社区版

     

    教程:


     

    1、下载opencv安装包,由于4.0.1版本会出现不同的错误,我们将使用3.4.1版本。官网下载链接:https://opencv.org/releases.html#

    2、下载完opencv安装包后,双击开始安装,选择安装目录,因为opencv会自己解压一个opencv文件夹,所以我们可以直接选一个合适目录即可,我在选择的是D:\Path(需要记住后面还要使用),选择后点击Extract

    1.PNG

    3、静待解压结束

    2.PNG

     

    4、解压结束后,鼠标右键此电脑,打开属性,打开高级系统设置,选择环境变量,找到系统变量中的path变量,双击它,点击新建,将你解压的opencv文件夹中的D:\Path\Opencv\build\x64\vc15\bin路径添加到当中,然后一路确认即可。

    3.PNG

     

    5、找到解压文件夹,我们选择v15->bin文件夹,找到三个文件。

    4.PNG

     

    6、将bin目录下面的opencv_world341.dll和opencv_world341d.dll文件复制到C:\Windows\SysWOW64这个文件夹里面即可,将bin目录里面的opencv_ffmpeg341_64.dll复制到C:\Windows\System32这个文件夹里面。

     

    7、我们打开vs2019,然后新建空项目,菜单栏->视图->其他窗口->属性管理器,找到Debug|X64,如图:

    7.PNG

     

    8、鼠标右键Debug|X64,然后选择属性,VC++目录->常规->包含目录,添加三个路径:D:\Path\Opencv\build\include\,D:\Path\Opencv\build\include\opencv,和D:\Path\Opencv\build\include\opencv2,如图操作,确认。

     

    8.PNG

     

    9、VC++目录->常规->库目录中加入D:\Path\Opencv\build\x64\vc15\lib(以自己的安装目录为主)

    9.PNG

     

    10、链接器->输入->附加依赖项中加入opencv_world341d.lib,opencv_world341.lib,确认。

    10.PNG

     

    测试:DebugX64

    测试代码来自:

    解决方案管理器,选择源文件,右键新建,代码在下面。

    测试简单代码过后再放复杂的

    综合几个问题

    1. 我使用的是341版本,用其他的不保证能运行,曾经401版本的就配置不了
    2. 第十步很多小伙伴都是复制我那两个文件名,没仔细看图片,要以自己的文件名为主
    3. 麻烦看清楚bin和lib文件的区别(后面几步)
    4. 配置完系统环境重启电脑一下。
    5. 新建cpp文件到右侧的解决方案管理器,选择源文件右键新建
    6. 有问题我的个人博客(xygeng.cn)头像下面有qq,电脑的在右边,手机的在底部
    7. 有问题请找原文博客,最新的教程也会在。

     

    有问题请看下面链接找我

    本文标题:VS2019配置opencv详细图文教程和测试代码

    本文链接:https://xygeng.cn/post/151.html

    作者授权:除特别说明外,本文由 庚哥哥 原创编译并授权 木芽博客 刊载发布。

    版权声明:本文使用「署名-禁止演绎 4.0 国际」创作共享协议,转载或使用请遵守署名协议。

     

    展开全文
  • coverage 测试代码覆盖率

    万次阅读 2017-11-30 14:26:54
    进一步考虑,测试覆盖率可以看作是产品代码质量的间接指标--之所以说是间接指标,因为测试覆盖率评价的是测试代码的质量,并不是产品代码的质量。代码覆盖率是一种白盒测试,因为测试覆盖率是评价产品代码类内部的...

    测试覆盖率,简单的说,就是评价测试活动覆盖产品代码的指标。测试的目的,是确认产品代码按照预期一样工作,也可以看作是产品代码工作方式的说明文档。进一步考虑,测试覆盖率可以看作是产品代码质量的间接指标--之所以说是间接指标,因为测试覆盖率评价的是测试代码的质量,并不是产品代码的质量。代码覆盖率是一种白盒测试,因为测试覆盖率是评价产品代码类内部的指标,而不是评价系统接口或规约。测试覆盖率尤其用于评价测试代码是否已经覆盖了产品代码所有的路径

    1、EclEmma coverage安装

    有两种方法:1、eclipse中点击工具栏的 help--install new software 显示如下截图

    在这里插入图片描述
    点击Add,弹出如下

    在这里插入图片描述


    在name中填写安装软件的名字(自己命名),location中填写如下网址:
    http://update.eclemma.org/
    接下来,只要一路next就OK了,安装成功后eclipse工具栏会添加一个新图标

    在这里插入图片描述


    如果出现上面截图表示成功
    2、第二种方法更简单
    eclipse中点击工具栏的 help-- Eclipse marketplace 如下图

    在这里插入图片描述


    按照红线标注的操作,安装完后eclipse工具栏出现第一种安装说明最后截图中的图标,表示安装成功。

    2、coverage使用

    首选选择你要测试的Test测试类,右击,右键菜单里面多了一个Coverage as的选项,选择JUNIT,这时测试程序会在JUNIT中执行一遍,如果代码有多种情况,可以多次执行,吧多次统计的测试代码覆盖路进行整合,生成覆盖率统计结果。(java application 程序也可以直接用 coverage as 执行)

    实例

    百度中看到一个很好的例子,这里借用一下:

    public class HelloWorld {
    
    public static void main(String[] args) {
        new HelloWorld();
        int rand = (int) (Math.random() * 100);
        if (rand % 2 == 0) {
            System.out.println("Hello, world! 0");
        } else
            System.out.println("Hello, world! 1");
    
        int result = rand % 2 == 0 ? rand + rand : rand * rand;
        System.out.println(result);
    }
    

    }

    按照上面说的coverage使用,执行一下, 可以看到如下截图

    在这里插入图片描述

    绿色:代码被执行过
    黄色:代码部分被执行过
    红色:代码没有被执行过

    在下面的Coverage视窗中,可以看到代码测试覆盖率。看代码,是取得随机数,if判断可能出现不满足,可能满足的情况, 需要多次执行该代码,得到多次的代码覆盖率,然后吧多次得到的覆盖率合并,得到这个类总的代码测试覆盖率。
    (其中有一句:new HelloWorld(); 该行代码是为了调用,该类默认的构造器。我认为:每个类都有默认的构造器,只是没有显示的代码而已,如果这里不写,代码覆盖率会降低,第一行public class HelloWorld 绿色也会变成红色 )
    总的统计如下:

    在这里插入图片描述


    箭头所指为合并多次执行后的覆盖率百分比

    3、总结

    1)、coverage 可以测试java application程序,也可以测试JUnit 测试类
    2)、如果要测试整个项目中代码的测试覆盖率,可能比较麻烦,至少需要吧所有代码的测试类执行一遍,并且把所有代码执行的路径都考虑到才准确(不知道有没有对整个项目测试的好方法,最起码我还不知道 -.-)
    3)、别忘记测试异常情况,空指针,或者其他异常后,执行异常代码,也会增加代码测试覆盖率的
    4)、如果得到代码测试覆盖率比较高,显而易见能看出代码安全性会比较能保证(最起码测试无误)

    展开全文
  • tensorflow-gpu测试代码

    万次阅读 多人点赞 2018-03-19 19:15:28
    1.前言:显卡昂贵,且用且珍惜...因此,我决定,跑个测试代码,来瞅瞅。2.代码如下:import tensorflow as tf with tf.device('/cpu:0'): a = tf.constant([1.0,2.0,3.0],shape=[3],name='a') b = tf.constant([...

    1.前言:显卡昂贵,且用且珍惜!话说,安装了gpu版tf,跑跑小代码总觉得是杀鸡焉用宰牛刀的感觉。因此,我决定,跑个测试代码,来瞅瞅。

    2.代码如下:

    import tensorflow as tf
    
    with tf.device('/cpu:0'):
        a = tf.constant([1.0,2.0,3.0],shape=[3],name='a')
        b = tf.constant([1.0,2.0,3.0],shape=[3],name='b')
    with tf.device('/gpu:1'):
        c = a+b
       
    #注意:allow_soft_placement=True表明:计算设备可自行选择,如果没有这个参数,会报错。
    #因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。
    sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True))
    #sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
    sess.run(tf.global_variables_initializer())
    print(sess.run(c))

    结果:

    [ 2.  4.  6.]


    展开全文
  • 测试代码的坏味道

    千次阅读 2020-01-06 20:58:00
    测试代码才能真正体现开发人员的水平。追求技术卓越是采用敏捷的第一成功要素。—— Jeff Sutherland 敏捷宣言创始人之一Phodal: “你为什么写测试?”开发人员 A:“为了...
  • cpu性能测试代码

    千次阅读 2017-02-24 15:45:34
    cpu性能测试代码
  • 小米手机测试代码电池测试代码

    千次阅读 2019-09-28 15:13:56
    在拨号界面手动输入如下代码,自动跳入测试页面。可以查看你想查看的信息。 *#*#64663#*#* 综合测试指令 *#*#4636#*#* 显示手机信息、电池信息、电池记录、使用统计数据、WiFi信息 *#*#7780#*#* 重设为原厂...
  • 测试代码的编写

    千次阅读 2015-10-13 22:50:56
    测试代码的编写 说明:代码测试可能是软件测试的一个简化,一般是程序开发人员自己为了维护测试一段代码编写的健壮性所进行的一些测试。通常包括正向测试、负向测试和边界测试。而通常在程序开发阶段进行,并根据...
  • XSS攻击测试代码

    千次阅读 2018-11-28 11:48:30
    XSS攻击测试代码 主要攻击是通过在输入框内输入获取服务器的cookie的信息,从而登陆你的服务器, 原理是通过在前端的关键字内输入攻击的值,然后这些值存储在数据库内,后端服务器通过调取这个键值对,从而触发...
  • XSS测试代码大全

    万次阅读 2017-11-14 14:47:24
    XSS测试代码大全 主要根据各种脚本及标签,将之转换成Unicode编码后输入。 '>alert(document.cookie) ='>alert(document.cookie) alert(document.cookie) alert(vulnerable) %3Cscript%3Ealert('XSS')%3C/...
  • Maven-编写测试代码

    千次阅读 2018-11-20 11:08:23
    Maven项目中默认的主代码目录是src/main/java,对应的,Maven项目中默认的测试代码目录是src/test/java。因此,在编写测试用例之前,应先创建该目录。 在Java中,由Kent Beck 和Erich Gamma建立的JUnit是事实上的...
  • 如何编写Junit测试代码

    千次阅读 2017-02-16 17:19:28
    一、环境准备: jdk1.7+,Junit4.9,...二、测试代码部分: DataSynchReceiveServiceImpl.java package com.snt.aaa.config.service.impl; import java.util.List; import org.slf4j.Logger; import org.slf4...
  • Tensorflow MNIST 数据集测试代码入门

    万次阅读 2016-02-19 14:36:42
    Tensorflow MNIST 数据集测试代码入门
  • 如何编写测试代码

    万次阅读 2012-11-12 15:10:40
    本文通过介绍简单测试代码的编写来进一步阐述单元测试的基本原理和方法,在实际工作中,测试代码可以由工具生成。 下面用最容易理解和测试的加法函数来介绍测试代码的编写,函数代码如下: int add(int a,int b)...
  • 上传测试代码到腾讯云

    千次阅读 2018-08-23 09:20:18
    一、上传测试代码到腾讯云 如何使用微信开发者工具上传测试代码到腾讯云?可通过以下设置实现。 (1)登录小程序后台 进入https://mp...
  • 使用javascript的网速测试代码

    万次阅读 2014-01-29 21:53:10
    使用javascript的网速测试代码: 在之前为了测试应用网速,实现了用java applet使用socket的测试方式,测试结果比较准确和稳定,且部署也较简单。但缺点是客户端必须安装JRE或JDK。今天用javascript脚本写了一个通过...
  • C# 测试代码运行时间

    千次阅读 2018-04-03 11:35:17
    测试代码运行的 时间 我们需要用到 Stopwatch 类 如果不想听我啰嗦的 附上微软官方文档 https://msdn.microsoft.com/zh-cn/library/system.diagnostics.stopwatch(v=vs.110).aspx 这个类里面有两个方法 ...
  • 自动化测试系列(第三天)—— 编写测试代码 项目已经部署到tomcat服务器上了,现在编写打开浏览器访问项目登录页面并登录,验证是否登录成功等操作。 创建浏览器 上一篇下载了chromedriver.exe,找到这个...
  • Java高并发及测试代码

    千次阅读 2018-06-23 16:16:15
    于是灵光一现使用多线程来写并发测试代码。想想心理都有点小激动咧。效果比工具还好,废话不多说贴代码 添加Maven依赖 <!--添加OKHttp.jar包--> <dependency> <groupId&...
  • 下面来举例设置一个junit4测试代码模板 idea选择File-->Settings... 最后在代码中输入jtest快捷键即可快速生成测试代码模板哦~
  • 上一篇介绍了如何搭建selenium环境,也给出了一小...本文介绍如何使用pytest+selenium的框架做到测试代码与脚本代码的分离pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点:1、简单灵活,容易上手;
  • 然后编写测试代码,设计测试数据集,编写测试程序,测试正确性、算法复杂性和效率。 题目中注明检测正确性的测试程序应该输出一个遍历结果,保证所有分支语句都检测到。不太理解这是要我做什么……以及比较算法复杂...
  • Coveralls自动测试代码覆盖率

    千次阅读 2017-08-28 22:47:55
    Coveralls自动测试代码覆盖率一.概要借助Travis CI或者Jenkins等持续集成服务,向用户报告自动测试的测试覆盖率.二.条件 代码托管在GitHub. 已经集成了Travis CI或者Jenkins等服务. 三.集成.I 注册登录Coveralls:访问...
  • 关于测试代码覆盖率

    千次阅读 2014-03-07 09:16:01
    关于测试代码覆盖率 我读了软件测试代码覆盖率的讨论。讨论主要是由哪些代码覆盖率数字单元测试或整体测试是正确的或所需。40%、60%、80%、甚至100%?一些声称,谷歌只需要60%。一些问我在微软代码覆盖数要求是什么...
  • ML之HMM:HMM算法相关论文、算法过程、关键步骤、测试代码配图集合 目录 HMM算法相关论文 HMM算法算法过程 HMM算法关键步骤 HMM算法测试代码 HMM算法相关论文 部分内容因为版本升级丢失,待更新...
  • 首先要明白测试代码的作用,这点其实很重要!测试代码其实就是通过代码模拟产生测试的环境,然后测试自己编写的模块代码是否正确。这可以指导我们在编写代码过程中决定某一些控制信号该如何产生,比如用于控制产生...
  • java 入门测试代码(一)

    千次阅读 2019-02-19 16:05:59
    今天写了一个例子就是常用的java 使用 带继承的类及用法在 测试代码二里边 main 类 ​ package com.company; // 这里用了java包引用的语法 import com.apple.CBca; import java.awt.*; public class Main { ...
  • tensorflow-gpu-2.1安装成功测试代码

    千次阅读 2020-04-15 00:23:26
    测试代码一: import tensorflow as tf import timeit with tf.device('/cpu:0'): cpu_a = tf.random.normal([10000, 1000]) cpu_b = tf.random.normal([1000, 2000]) print(cpu_a.device, cpu_b.device) w...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 255,775
精华内容 102,310
关键字:

测试代码