如何使用HtmlTestRunner生成报表用于支持xmlrpc通信的unittests?

2024-09-30 22:24:37 发布

您现在位置:Python中文网/ 问答频道 /正文

如果是一个在xmlrpc客户机/服务器之间invlove一个xml-rpc请求/响应的unittest,它可以正常工作并在一端生成报告,但是如果场景扩展到多个xmlrpc请求,则不会生成报告。在

下面是代码段模板:

在我的一台机器上

class ABC():
          def add():
                .......
          def subtract():
                .......

class MachineABCTest(unittest.TestCase):
         def test_ABC(self):
               x1 = abc_client.multiply() #method which resides in MachineXYZTest
               y1 = abc_client.divide() #method which resides in MachineXYZTest

suite = unittest.TestLoader().loadTestsFromTestCase(MachineABCTest)
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, verbosity=2)
runner.run(suite)

class ServerThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.abc_server = SimpleThreadedXMLRPCServer(("XXX.XXX.XXX.1", 8000))
        self.abc_server.register_instance(ABC()) #methods add & subtract will get registered

    def run(self):
        self.moderator_srv.serve_forever()

abc_server = ServerThread()
abc_server.start()

在另一台机器上

^{pr2}$

进口声明也没什么问题

import HTMLTestRunner
reload(HTMLTestRunner)

dir = "D:\\Test\\ABC_XYZ_Test"
fp = file(os.path.join(dir, "TestResult.html"), "wb")

我在两份文件里都有。在

如果只有一个来自ABC的电话,它就会生成报告

x1 = abc_client.multiply() #method which resides in MachineXYZTest

以及为该请求提供服务的xyz_服务器。在这种情况下,报告将在客户端(这里是ABC)生成。在

只有在发生双向通信时才会出现问题,或者发出了多个请求(如上面的代码片段所示)(从ABC到XYZ,反之亦然)。在

谢谢。在


Tags: inselfclientwhichserverdef报告unittest