Perfom python unit tests via a web interface

前端 未结 2 450
-上瘾入骨i
-上瘾入骨i 2021-02-06 07:59

Is it possible to perform unittest tests via a web interface...and if so how?

EDIT: For now I want the results...for the tests I want them to be automa

2条回答
  •  悲哀的现实
    2021-02-06 08:11

    EDIT:

    This answer is outdated at this point:

    • Use Jenkins instead of Hudson (same thing, new name).
    • Use django-jenkins instead of xmlrunner.py.

    The link to django-jenkins goes to a nice tutorial on how to use Jenkins with Django. I'll leave the text below since it still has some nice information.


    As Bryan said, I'd use Hudson to schedule, run, and collect the test results. You can modify your tests to use xmlrunner.py (written by Sebastian Rittau), which will output your test results into an JUnit compatible XML file for Hudson.

    Here's an example of how the test code would use xmlrunner:

    import unittest
    import xmlrunner
    
    class TheTest(unittest.TestCase):
    
        def testOne(self):
            self.assertEquals(1, 1)
        def testTwo(self):
            self.assertEquals(2, 2)
        def testThree(self):
            self.assertEquals(3, 4)
    
    if __name__ == '__main__':
        suite = unittest.TestLoader().loadTestsFromTestCase(TheTest)
        xmlrunner.XMLTestRunner().run(suite)
    

    Once you install Hudson, you'll create a new project for the source repository you're testing. You'll need to RTFM, but in a nutshell:

    1. Under Source Code Management, you'll enter your repositories information and make it poll the repo periodically (I usually just do * * * * * so it checks every minute)
    2. Add a command that actually runs the test script (like python test.py).
    3. Check the Publish JUnit test result report. If it has an error like 'TEST-*.xml' doesn't match anything you can safely ignore it. It'll look something like this:
      (source: snowpeaksoftware.com)

    Once that's all done you'll be able to see test results for every time Hudson runs after check-in. It'll look something like this:


    (source: snowpeaksoftware.com)

    You also get more detailed pages like this page:


    (source: snowpeaksoftware.com)

    and this page:


    (source: snowpeaksoftware.com)

提交回复
热议问题