0
unittest의 하위 클래스 및 메서드의 동작을 이해하려고합니다. 다음 코드에서는 test_sub가 아닌 test_add 메서드 만 실행하려고합니다. 출력이 방법이 모두 실행되고 있음을 증명하기 때문에 누군가 내가 뭘 잘못 설명해 주시겠습니까 다음과 같이TextTestRunner는 pyunit에서 두 테스트 (test_methods가 호출 될 때)를 실행합니다.
import unittest
def add(a,b):
x=a+b
return x
def sub(x,y):
z=x-y
return z
class addnum():
def calladd(self, a, b):
sum1 = add(a, b)
return sum1
def callsub(self,x,y):
diff = sub(x , y)
print "subtraction succ"
return diff
class test(addnum, unittest.TestCase):
def setup(self):
pass
def teardown(self):
pass
def test_add(self):
a1=addnum()
if a1.calladd(1, 2) ==3:
print "add successful"
assert addnum().calladd(1,2) == 3
def test_sub(self):
assert addnum().callsub(5, 3) == 2
print "abc"
#suite = unittest.TestSuite()
#suite.addTest(test('test_add'))
runner = unittest.TextTestRunner(verbosity=2)
runner.run(test(methodName='test_add'))
출력은 다음과 같습니다
Finding files... done.
Importing test modules ... add successful
done.
add successful
subtraction succ
abc
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
test_add (trial2.test) ... ok
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
이 도와주세요. 나는이 시점에서 내 지식이 상당히 제한적이라는 것을 인정한다.
어떤 파이썬을 사용하고 있습니까? unittest 모듈의 차이점은 2.7 이상입니다. 그것은 우리의 행동이 행동에서 일치하지 않는 이유를 설명 할 수 있습니다. – Diegomanas
TextTestRunner가 사용되는 방식에 많은 차이가 있는지 확인했습니다. – Diegomanas
Eclipse의 PyDev 플러그인이 전체 모듈을 한 번 실행 한 것 같습니다. 따라서 if (main)를 사용하지 않고도 프로그램에서 두 가지 테스트를 실행 한 것입니다. 어쨌든 방향 주셔서 감사합니다. 편의를 위해 넷빈으로 전환했습니다. – Kevin