Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
pythonÖеĵ¥Ôª²âÊÔ
 
×÷Õß Áã¶¡Èô̾£¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-07-22
  2896  次浏览      27
 

pythonÖеĵ¥Ôª²âÊÔ¿ÉÒÔʹÓÃdoctest,unittestÍê³É

1.doctestµÄʹÓÃ

(1)дÈë³ÌÐòÈçÏÂ(cubetest.py)£º

#!/usr/bin/python
def cube(x):
"""
cube a number and return the result
>>> cube(2)
8
>>> cube(3)
27
>>> cube(4)
64
"""
return x**3;
if __name__=='__main__':
import doctest;
doctest.testmod(verbose=True);

²âÊÔÓÃÀýдÔÚ×Ö·û´®¡±¡±¡± cube a number¡­ ¡°¡±¡±ÖС£

µ÷ÓÃdoctestÖеÄtestmodµÄ·½·¨¼´¿É²âÊÔ¡£

Êä³öÈçÏÂ

Trying:
cube(2)
Expecting:
8
ok
Trying:
cube(3)
Expecting:
27
ok
Trying:
cube(4)
Expecting:
64
ok
1 itemshad no tests:
__main__
1 itemspassed all tests:
3 tests in __main__.cube
3 testsin 2 items.
3 passedand 0 failed.
Testpassed.
TestResults(failed=0, attempted=3)

(2)Ò²¿ÉÒ԰ѲâÊÔÓÃÀýдÔÚ¼Çʱ¾ÎļþÖС£Ð½¨¼Çʱ¾example.txt,дÈëÒÔÏÂÄÚÈÝ£º

>>> from cubetest import cube
>>> cube(1)
1
>>> cube(2)
8
>>> cube(4)
64

È»ºóд²âÊÔ´úÂë test.py£º

import doctest

doctest.testfile("example.txt")

ʹÓÃpython test.py ¨Cv Ö´ÐвâÊÔ´úÂ룬¿ÉÒԵõ½ÒÔϽá¹û

Trying:
from cubetest import cube
Expectingnothing
ok
Trying:
cube(1)
Expecting:
1
ok
Trying:
cube(2)
Expecting:
8
ok
Trying:
cube(4)
Expecting:
64
ok
1 items passedall tests:
4 tests in example.txt
4 tests in 1items.
4 passed and 0failed.
Test passed.

2.unittestµÄʹÓÃ

(1)д´ý²âÊԵijÌÐòÈçÏ£º

def iseven(x):
if(x%2==0):
return 1;
else:
return 0;
def isodd(x):
if(x%2==1):
return 1;
else:
return 0;

²âÊÔ³ÌÐòÖеÄÀàeventestÀà¼Ì³Ð×ÔTestCase,Ëü°üº¬setUp() ,test_1(),test_2()ºÍtearDown()Ëĸö·½·¨¡£ÔÚ²âÊÔÔËÐÐǰ£¬»á×Ô¶¯ÔËÐÐsetUp()·½·¨£¬ÔÚ²âÊÔÍê³É֮ǰ£¬»á×Ô¶¯µ÷ÓÃtearDown()·½·¨¡£test_1()ºÍtest_2()ÊÇ×Ô¶¨ÒåµÄ²âÊÔ·½·¨¡£Ð´²âÊÔ³ÌÐòÈçÏ£º

import unittest,evenodd
class eventest(unittest.TestCase):
def setUp(self):
self.ex1=range(0,2,20);
self.ex2=range(1,2,20);
def test_1(self):
for x in self.ex1:
x=evenodd.iseven(x);
self.assertEqual(x,1);
for x in self.ex2:
x=evenodd.iseven(x);
self.assertEqual(x,0);
def test_2(self):
for x in self.ex1:
x=evenodd.isodd(x);
self.assertEqual(x,0);
for x in self.ex2:
x=evenodd.isodd(x);
self.assertEqual(x,1);
def tearDown(self):
self.ex1=None;
self.ex2=None;
if __name__=='__main__':
unittest.main();
¡¡¡¡ÉÏÃæÓõ½ÁËself.AssertEqual(),ÀàËÆµÄÅжϷ½·¨»¹ÓУº
assertNotEqual(a,b) a!=b
asserTrue(x) bool(x)ÎªÕæ
assertFalse(x) bool(x)Ϊ¼Ù
assertIs(a,b) a is b
assertIsNot(a,b) a is not b
assertIsNone(x) x is None
assertIsNotNone(x) x is not None
assertIn (a,b) a in b
assertNotIn(a,b) a not in b
assertIsInstance(a,b) isinstance(a,b)
assertNotIsInstance(a,b) not instance(a,b)

(2) Ò²¿ÉÒÔʹÓÃTestSuite¶Ô²âÊÔÓÃÀý½øÐзâ×°£¬ÏÂÃæµÄ³ÌÐò¶¨ÒåÁËÀàevensuite£¬Ëü¼Ì³Ð×ÔÀàTestSuite£¬·½·¨addTest()ÓÃÓÚÌí¼Ó²âÊÔ·½·¨¡£

²âÊÔ³ÌÐòÈçÏ£º

import unittest,evenodd
class eventest(unittest.TestCase):
def setUp(self):
self.ex1=range(0,2,20);
self.ex2=range(1,2,20);
def test_1(self):
for x in self.ex1:
x=evenodd.iseven(x);
self.assertEqual(x,1);
for x in self.ex2:
x=evenodd.iseven(x);
self.assertEqual(x,0);
def test_2(self):
for x in self.ex1:
x=evenodd.isodd(x);
self.assertEqual(x,0);
for x in self.ex2:
x=evenodd.isodd(x);
self.assertEqual(x,1);
def tearDown(self):
self.ex1=None;
self.ex2=None;
class evensuite(unittest.TestSuite):
def suite(self):
suite=unittest.TestSuite();
suite.addTest(eventest('test_1'));
suite.addTest(eventest('test_2'));
return suite;
if __name__=='__main__':
unittest.main();

ÔËÐгÌÐò £¬½á¹ûÊä³ö£º

_ _
¡¡¡¡ran 2 tests in 0.001s
¡¡¡¡OK
   
2896 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

LoadRunnerÐÔÄܲâÊÔ»ù´¡
Èí¼þ²âÊÔ½á¹û·ÖÎöºÍÖÊÁ¿±¨¸æ
ÃæÏò¶ÔÏóÈí¼þ²âÊÔ¼¼ÊõÑо¿
Éè¼Æ²âÊÔÓÃÀýµÄËÄÌõÔ­Ôò
¹¦ÄܲâÊÔÖйÊÕÏÄ£Ð͵Ľ¨Á¢
ÐÔÄܲâÊÔ×ÛÊö


ÐÔÄܲâÊÔ·½·¨Óë¼¼Êõ
²âÊÔ¹ý³ÌÓëÍŶӹÜÀí
LoadRunner½øÐÐÐÔÄܲâÊÔ
WEBÓ¦ÓõÄÈí¼þ²âÊÔ
ÊÖ»úÈí¼þ²âÊÔ
°×ºÐ²âÊÔ·½·¨Óë¼¼Êõ


ij²©²ÊÐÐÒµ Êý¾Ý¿â×Ô¶¯»¯²âÊÔ
IT·þÎñÉÌ Web°²È«²âÊÔ
IT·þÎñÉÌ ×Ô¶¯»¯²âÊÔ¿ò¼Ü
º£º½¹É·Ý µ¥Ôª²âÊÔ¡¢Öع¹
²âÊÔÐèÇó·ÖÎöÓë²âÊÔÓÃÀý·ÖÎö
»¥ÁªÍøweb²âÊÔ·½·¨Óëʵ¼ù
»ùÓÚSeleniumµÄWeb×Ô¶¯»¯²âÊÔ