即使代码中放入测试用例也未产生输出
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如,有人可能在使用一个叫做“库”的东西时,发现它的某些功能没有按照预期工作。这种情况可能会让人感到困惑,因为我们可能不知道问题出在哪里。
通常,解决这类问题的第一步是仔细检查代码,看看有没有拼写错误或者用错了功能。接着,可以查看相关的文档,了解这个库的使用方法和注意事项。如果文档不够清晰,或者找不到答案,向社区求助也是一个好办法,比如在StackOverflow上提问。
在提问时,最好提供一些具体的信息,比如你使用的代码片段、遇到的错误信息,以及你希望实现的目标。这样,其他人才能更好地理解你的问题,并给出有效的建议。
总之,遇到问题时,不要着急,慢慢分析,查找资料,必要时寻求帮助,通常都能找到解决办法。
from brisa.core.reactors import install_default_reactor
reactor = install_default_reactor()
import os
import unittest
from brisa.upnp.device import Device, Service
from brisa.upnp.device.service import StateVariable
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
self.set_state_variable('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(object):
def __init__(self):
self.server_name = 'Binary Light device'
self.device = None
def _create_device(self):
project_page = 'https://garage.maemo.org/projects/brisa'
self.device = Device('urn:schemas=upnp-org:device:BinaryLight:1',
self.server_name,
manufacturer = 'Ankit',
model_name = 'Binary Light Device',
model_description = 'Test Device',
model_number = '1.0',
model_url=project_page)
def _add_service(self):
switch = SwitchPower()
self.device.add_service(switch)
def start(self):
self._create_device()
self._add_services()
self.device.start()
reactor.add_after_stop_func(self.device.stop)
reactor.main()
# Here's our "unit tests".
class IsOddTests(unittest.TestCase):
def testOne(self):
self.failUnless(_create_device('urn:schemas=upnp-org:device:BinaryLight:1'))
print self.failUnless(_create_device('urn:schemas=upnp-org:device:BinaryLight:1'))
def main():
unittest.main()
if __name__ == '__main__':
device = BinaryLight()
device.start()
1 个回答
7
如果你希望在运行脚本的时候自动执行测试,你需要:
if __name__ == '__main__':
unittest.main()
不过,通常推荐的做法是把测试放在一个单独的文件里(包含上面的“main”部分),这样你就可以把主程序的部分保留在现有的程序中。