您好,欢迎访问三七文档
Nose框架使用1、Nosetest常用参数1)nosetests–v:debug模式,看到具体执行情况,推荐大家执行时用这个选项2)nose会捕获标准输出,调试的print代码默认不会打印。nosetest–s可打开output输出,否则全部通过时不打印stdout。3)默认nosetests会执行所有的case,若想单独只执行一个case,执行nosetest--tests后跟要测试的文件(nosetests后面直接跟文件名,其实也可以直接运行该case)。4)nosetest--pdb-failures:失败时,立马调试。这选项很赞,可看到失败时的即时环境。5)nosetests--collect-only-v:不运行程序,只是搜集并输出各个case的名称6)nosetests-x:一旦case失败立即停止,不执行后续case7)nosetests–failed:只执行上一轮失败的case该框架可用的函数以下函数都可以直接使用,无需导入头文件等Safe封装Assert语句AssertEqualAssertEqual(s1,s2,msg=''):@note:判断s1和s2是否相等,两者类型必须一致[例子]:\r\nAssertEqual(鲜花,鲜花,检查前面两个字符串是否相等);\r\n@param:s1,s2待比较的对象,对象类型不定,但是两个对象必须相同类型@rtype:int@rvalue:相等返回0,不相等抛异常AssertNotEqualAssertNotEqual(s1,s2,msg=''):@note:判断s1和s2是否不相等,两者类型必须一致[例子]:\r\nAssertNotEqual(鲜花,鲜花a,如果前面两个字符串相等,则输出该信息);\r\n@param:s1,s2待比较的对象,对象类型不定,但是两个对象必须相同类型@rtype:int@rvalue:相等返回0,不相等返回抛异常AssertTrueAssertTrue(s,msg=''):@note:断言s参数为True[例子]:\r\nAssertTrue(1,如果前面一个参数为假,则输出该信息);\r\n@param:s,待判断是否为True的对象@rtype:int@rvalue:s对象是真则返回0,s对象是假,则抛出异常AssertFalseAssertFalse(s,msg=''):'''@note:断言s参数为False[例子]:\r\nAssertFalse(0,如果前面参数的值为真,则输出该信息);\r\n@param:s,带判断是否为False的对象@rtype:int@rvalue:s对象为假则返回0,s对象为真则抛出异常AssertInAssertIn(s,l,msg=''):@note:判断s是否属于l[例子]:\r\nAssertIn(1,[2,3,1,5],如果第一个参数不属于第二个参数对应的集合,则输出该信息);\r\n@param:s表示元素,l表示集合,msg表示出错是打印的消息@rvalue:int@rtype:如果l中包含s,返回0,如果l中不包含s,则抛出异常AssertNotInAssertNotIn(s,l,msg=''):@note:判断s是否不属于l[例子]:\r\nAssertNotIn(2,[3,4,5,6],如果第一个参数属于第二个参数对应的集合,则输出该参数);\r\n@param:s表示元素,l表示集合,msg表示出错是打印的消息@rvalue:int@rtype:如果l中不包含s,返回0,如果l中包含s,则抛出异常AssertIncludeAssertInclude(s,t,msg=''):@note:判断s是否包含t,[例子]:\r\nAssertInclude([1,2],[1,2,3,4],如果第二个参数对应的列表不包含第一个参数对应的列表,则输出该信息);\r\n@param:s和t都是列表类型@rvalue:int@rtype:如果s中包含t,返回0,如果s中不包含t,则抛出异常AssertExcludeAssertExclude@note:判断s是否不包含t[例子]:\r\nAssertExclude([1,2],[3,4,6],如果第二个参数对应的列表包含第一个参数对应的列表,则输出该信息)@param:s和t都是列表类型@rvalue:int@rtype:如果s中不包含t,返回0,如果s中包含t,则抛出异常'''AssertGreaterAssertGreater(s1,s2,msg=''):@note:判断s1是否大于s2,两者类型必须一致[例子]:\r\nAssertEqual(3,2,检查第一个对象是否大于第二个对象);\r\n@param:s1,s2待比较的对象,对象类型不定,但是两个对象必须相同类型@rtype:int@rvalue:相等返回0,不相等抛异常Nose自带assert语句nose.toolsassert_almost_equal(first,second,places=7,msg=None)assert_almost_equals(first,second,places=7,msg=None)assert_equal(first,second,msg=None)assert_equals(first,second,msg=None)assert_false(expr,msg=None)assert_not_almost_equal(first,second,places=7,msg=None)assert_not_almost_equals(first,second,places=7,msg=None)assert_not_equal(first,second,msg=None)assert_not_equals(first,second,msg=None)assert_true(expr,msg=None)eq_(a,b,msg=None)ok_(expr,msg=None)unittest的assert(a,b)a==bassertNotEqual(a,b)a!=bassertTrue(x)bool(x)isTrueassertFalse(x)bool(x)isFalseassertIs(a,b)aisb2.7assertIsNot(a,b)aisnotb2.7assertIsNone(x)xisNone2.7assertIsNotNone(x)xisnotNone2.7assertIn(a,b)ainb2.7assertNotIn(a,b)anotinb2.7assertIsInstance(a,b)isinstance(a,b)2.7assertNotIsInstance(a,b)notisinstance(a,b)2.7assertAlmostEqual(a,b)round(a-b,7)==0assertNotAlmostEqual(a,b)round(a-b,7)!=0assertGreater(a,b)ab2.7assertGreaterEqual(a,b)a=b2.7assertLess(a,b)ab2.7assertLessEqual(a,b)a=b2.7assertRegexpMatches(s,re)regex.search(s)2.7assertNotRegexpMatches(s,re)notregex.search(s)2.7assertItemsEqual(a,b)sorted(a)==sorted(b)andworkswithunhashableobjs2.7assertDictContainsSubset(a,b)allthekey/valuepairsinaexistinb2.7assertRaises(exc,fun,*args,**kwds)fun(*args,**kwds)raisesexcassertRaisesRegexp(exc,re,fun,*args,**kwds)fun(*args,**kwds)raisesexcandthemessagematchesre2.7utlib封装函数call_cmd(command,cwd=None,input=None,env=None):@note:实际执行cmd,内部调用subprocess.Popen实现。与os.system仅有一个返回值相比,call_cmd会返回一个(retcode,stdout,stderr)的元组@input:command执行的脚本命令,可包含参数,如果参数含有变量可用如下形式Parmeter=1Call_cmd(fun='a.sh'+parmeter)两者在效果上是一致的call_function(shell,fun,cwd=None,input=None,env=None,setx=True):@note:实际上执行sourceshell;set-x;call_cmd(fun),针对shell脚本中的函数粒度@input:shell脚本的名称command执行的脚本命@example:call_function(shell='./define.sh',fun='third_step_hadoop./data/oovsort')call_shell(shell,cwd=None,input=None,env=None,setx=True):@note:实际上执行sh–xshell,针对shell脚本粒度@input:shell脚本的名称@example:call_shell(shell='./main.sh')call_awk_fun(libfile,body='BEGIN{}{}END{}',cwd=None,input=None,env=None):@note:实际上执行awk--source‘BEGIN{}{}END{}‘–flib.awkcall_awk_script(awkfile,cwd=None,input=None,env=None):@note:实际执行awk–fscript.awkutlib封装的assert断言defcheckRE(file_name,pat):deffileMatch(file_name,pat):deffileSearch(file_name,pat):defstringMatch(big_string,small_string):defstringNotMatch(big_string,small_string):defrunDiffIsExist(file1,file2,output_diff):defrunDiffIsNotExist(file1,file2,output_diff):defrunFileIsBlank(file):defrunFileIsNotBlank(file):Python脚本测试注意Python脚本的测试框架生成目前有自己书写,python代码写case需要注意以下几点1、python测试文件(test**.py)及函数的名字(test**)需要以testorTest开头noserunsfunctionaltestsintheorderinwhichtheyappearinthemodulefile.2、python测试文件(test**.py)需要将模块的output文件夹导入到系统变量中才能够使用output下的python文件如:sys.path.append(../../../output)关于assert程序的返回值xxx.py(或者其它脚本及可执行程序)是一个返回码为1的程序。当python程序使用os.system(“pythonxxx.py”)这样调用的时候,成功运
本文标题:Nose框架使用
链接地址:https://www.777doc.com/doc-5034793 .html