← Back to team overview

sikuli-driver team mailing list archive

Re: [Question #228125]: How to generate reports using HtmlTestRunner for unittests which involve xml-rpc communication?

 

Question #228125 on Sikuli changed:
https://answers.launchpad.net/sikuli/+question/228125

    Status: Needs information => Open

Aravind gave more information on the question:
Sorry Raiman, I thought of copying the relevant code only here.

Here, SimpleThreadedXMLRPCServer is being used. So there won't be any
issue of the thread getting blocked. I am able to perform the xml-rpc
two way communication without any issues. The problem is only with the
generation of reports.

I'll expand the code snippet:
----------------------------------------------------------------------------------------------
On one machine ABC I have,

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()

--------------------------------------------------------------------------------------------------
And on the other machine,

class XYZ():
          def multiply():
                .......
          def divide():
                .......

class MachineXYZTest(unittest.TestCase):
         def test_XYZ(self):
              x2 = xyz_client.add() #method which resides in MachineXYZTest
              x2 = xyz_client.subtract() #method which resides in MachineXYZTest

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

class ServerThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.xyz_server = SimpleThreadedXMLRPCServer(("XXX.XXX.XXX.2", 8000))
        self.xyz_server.register_instance(XYZ())            # methods multiply & divide will get registered
    
    def run(self):
        self.xyz_server.serve_forever()

xyz_server = ServerThread()
xyz_server.start()

----------------------------------------------------------------------------------------------

There's nothing wrong with the import statement as well

import HTMLTestRunner 
reload(HTMLTestRunner)

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

which I have included in both the files.


Thanks.

-- 
You received this question notification because you are a member of
Sikuli Drivers, which is an answer contact for Sikuli.