2011-02-11 8 views
0

이 오류는 무엇을 의미합니까 ??이 오류는 무엇을 의미합니까?

Ran 1 test in 0.002s 

FAILED (failures=1) 
[email protected]:~/Desktop$ python binary_light.py 
Light switched None 
F 
====================================================================== 
FAIL: testOne (__main__.IsOddTests) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "binary_light.py", line 54, in testOne 
    self.failUnless(b1.SetTarget(NewTargetValue = 'something')) 
AssertionError 

코드입니다 :

from brisa.core.reactors import install_default_reactor 
reactor = install_default_reactor() 

import os 
import unittest 
from brisa.upnp.device import Device, Service 

class SwitchPower(Service): 
    def __init__(self): 
     Service.__init__(self, 
         'SwitchPower', 
         'urn:schemas-upnp-org:service:SwitchPower:1', 
         '', 
         os.getcwd() + '/SwitchPower-scpd.xml') 
     self.target = False 
     self.status = False 

    def SetTarget(self, *args, **kwargs): 
     self.target = kwargs['NewTargetValue'] 
     self.status = self.target 

     print 'Light switched ', {'1': 'on', '0': 'off'}.get(self.target, None) 
     return {} 

    def GetTarget(self, *args, **kwargs): 
     return {'RetTargetValue': self.target} 

    def soap_GetStatus(self, *args, **kwargs): 
     return {'ResultStatus': self.status} 


class BinaryLight(Device): 

    def __init__(self): 
     Device.__init__(self, 
       'urn:schemas=upnp-org:device:BinaryLight:1', 
       'Binary Light Device') 



# Here's our "unit tests". 

class IsOddTests(unittest.TestCase): 

    def testOne(self): 
     b1 = SwitchPower() 
     self.failUnless(b1.SetTarget(NewTargetValue = 'something')) 



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



if __name__ == '__main__': 
    device = BinaryLight() 
    device += BinaryLight() 
    device.start() 
    reactor.add_after_stop_func(device.stop) 
    reactor.main() 

오류 :

[email protected]:~/Desktop$ python binary_light.py 
E 
====================================================================== 
ERROR: testOne (__main__.IsOddTests) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "binary_light.py", line 54, in testOne 
    self.failUnless(b1.SetTarget()=={}) 
    File "binary_light.py", line 25, in SetTarget 
    self.target = kwargs['NewTargetValue'] 
KeyError: 'NewTargetValue' 

---------------------------------------------------------------------- 
Ran 1 test in 0.002s 

FAILED (errors=1) 
+0

'SetTarget()'은'True '('{}'는'False')를 반환해야하는데, 이것이 시험에 실패한 이유입니다. 만약'{}'이 예상된다면'SetTarget() == {}'가 아니라면 그것을 변경하십시오. –

+0

이제는 필요한 매개 변수없이 함수를 호출하고 있습니다. 실제로 코드를 읽고 이것을 해결하려 했습니까? –

+0

죄송합니다 .... 확인하지 않았습니다 ... 죄송합니다. 실제로 unittest없이 코드를 실행하면 출력이 나오지 않는지 궁금합니다. – user1492832

답변

1

AssertionErrorhttp://docs.python.org/library/exceptions.html#exceptions.AssertionError 아래에 설명되어 있습니다 :

Raised when an assert statement fails.

귀하의 유닛 테스트가을 것을 주장한다3210은 부울 값인 True을 반환합니다. 그러나 메서드는 {}을 반환합니다.이 값은 False과 같으며 AssertionError이됩니다. 이 문제를 해결하려면 SetTarget{}을 반환했는지 테스트하거나 True로 해석 될 결과를 반환하도록 변경하십시오.

장치 코드가 작동하지 않는 이유가 궁금하다면 장치를 시작하기 전에 unittest를 실행하고 있기 때문입니다. 그리고 unittest가 실패하면 스크립트가 중지됩니다.

+0

오 .... .... 귀하의 솔루션을 확인하고 새로운 오류를 발견했습니다 ... 업데이트 된 부분을 참조하십시오 – user1492832

+0

하지만 파일을 실행할 때 일부 출력을 반환해야합니다. 왜 테스트 케이스가 생성되도록 실행하고 있습니까? 어떤 것. 그렇지 않으면, 그냥 exeutes 및 출력 형태로 아무것도 생산하고 있습니다. – user1492832

관련 문제