UnitTest 프레임 워크-테스트 건너 뛰기

Python 2.7부터 테스트 건너 뛰기에 대한 지원이 추가되었습니다. 개별 테스트 방법 또는 TestCase 클래스를 조건부로 또는 무조건적으로 건너 뛸 수 있습니다. 프레임 워크를 사용하면 특정 테스트를 '예상 실패'로 표시 할 수 있습니다. 이 테스트는 '실패'하지만 TestResult에서 실패한 것으로 간주되지 않습니다.

무조건 메소드를 건너 뛰려면 다음 unittest.skip () 클래스 메소드를 사용할 수 있습니다.

import unittest

   def add(x,y):
      return x+y

class SimpleTest(unittest.TestCase):
   @unittest.skip("demonstrating skipping")
   def testadd1(self):
      self.assertEquals(add(4,5),9)

if __name__ == '__main__':
   unittest.main()

skip ()은 클래스 메소드이므로 @ token이 접두어로 붙습니다. 이 메서드는 건너 뛰는 이유를 설명하는 로그 메시지라는 하나의 인수를 사용합니다.

위의 스크립트가 실행되면 다음과 같은 결과가 콘솔에 표시됩니다.

C:\Python27>python skiptest.py
s
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK (skipped = 1)

문자 's'는 테스트를 건너 뛰었 음을 나타냅니다.

테스트 건너 뛰기의 대체 구문은 테스트 함수 내에서 인스턴스 메서드 skipTest ()를 사용하는 것입니다.

def testadd2(self):
   self.skipTest("another method for skipping")
   self.assertTrue(add(4 + 5) == 10)

다음 데코레이터는 테스트 건너 뛰기 및 예상 실패를 구현합니다.

S. 아니. 방법 및 설명
1

unittest.skip(reason)

무조건 장식 된 테스트를 건너 뜁니다. 이유 는 테스트를 건너 뛰는 이유 를 설명해야합니다.

2

unittest.skipIf(condition, reason)

조건이 참이면 데코 레이팅 된 테스트를 건너 뜁니다.

unittest.skipUnless(condition, reason)

조건이 참이 아니면 데코 레이팅 된 테스트를 건너 뜁니다.

4

unittest.expectedFailure()

테스트를 예상 된 실패로 표시하십시오. 실행시 테스트가 실패하면 테스트는 실패로 간주되지 않습니다.

다음 예제는 조건부 건너 뛰기 및 예상 실패의 사용을 보여줍니다.

import unittest

class suiteTest(unittest.TestCase):
   a = 50
   b = 40
   
   def testadd(self):
      """Add"""
      result = self.a+self.b
      self.assertEqual(result,100)

   @unittest.skipIf(a>b, "Skip over this routine")
   def testsub(self):
      """sub"""
      result = self.a-self.b
      self.assertTrue(result == -10)
   
   @unittest.skipUnless(b == 0, "Skip over this routine")
   def testdiv(self):
      """div"""
      result = self.a/self.b
      self.assertTrue(result == 1)

   @unittest.expectedFailure
   def testmul(self):
      """mul"""
      result = self.a*self.b
      self.assertEqual(result == 0)

if __name__ == '__main__':
   unittest.main()

위의 예에서 testsub () 및 testdiv ()는 건너 뜁니다. 첫 번째 경우 a> b가 참이고 두 번째 경우 b == 0은 참이 아닙니다. 반면 testmul ()은 예상 실패로 표시되었습니다.

위의 스크립트가 실행되면 두 개의 건너 뛴 테스트가 's'를 표시하고 예상 실패는 'x'로 표시됩니다.

C:\Python27>python skiptest.py
Fsxs
================================================================
FAIL: testadd (__main__.suiteTest)
Add
----------------------------------------------------------------------
Traceback (most recent call last):
   File "skiptest.py", line 9, in testadd
      self.assertEqual(result,100)
AssertionError: 90 != 100

----------------------------------------------------------------------
Ran 4 tests in 0.000s

FAILED (failures = 1, skipped = 2, expected failures = 1)