gpt4 book ai didi

python - 带有测试套件和测试用例的 TestSuite

转载 作者:太空狗 更新时间:2023-10-30 00:33:36 25 4
gpt4 key购买 nike

我需要制作一个大型 python suitecase,其中包含我已经制作好的其他 suitcase 和 testcase 一起执行。

我该怎么做?

例如,这里有一个我要添加的suitecase(suiteFilter.py):

import testFilter1
import testFilter2
import unittest
import sys

def suite():
return unittest.TestSuite((\
unittest.makeSuite(testFilter1.TestFilter1),
unittest.makeSuite(testFilter2.TestFilter2),
))


if __name__ == "__main__":
result = unittest.TextTestRunner(verbosity=2).run(suite())
sys.exit(not result.wasSuccessful())

和一个测试用例结构(Invoice.py):

from selenium import selenium
import unittest, time, re
from setup_tests import filename, fileForNrTest, username, password, server_url
fileW=open(filename,'a')


class TestInvoice(unittest.TestCase):

def setUp(self):
self.verificationErrors = []
self.selenium = selenium("localhost", 4444, "*firefox", server_url)
self.selenium.start()

def test_invoice(self):
sel = self.selenium
[...]

def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)


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

谢谢!

最佳答案

您可以提供一些额外的信息,例如您的程序/测试用例和套件的结构。我这样做的方法是为每个模块定义一个 suite() 。所以我对 UserServiceTest 模块说:

def suite():
"""
Gather all the tests from this module in a test suite.
"""
test_suite = unittest.TestSuite()
test_suite.addTest(unittest.makeSuite(UserServiceTest))
return test_suite

if __name__ == "__main__":
#So you can run tests from this module individually.
unittest.main()

然后我对每个包都有一个主要测试:

def suite():
"""
Gather all the tests from this package in a test suite.
"""
test_suite = unittest.TestSuite()
test_suite.addTest(file_tests_main.suite())
test_suite.addTest(userservice_test.suite())
return test_suite


if __name__ == "__main__":
#So you can run tests from this package individually.
TEST_RUNNER = unittest.TextTestRunner()
TEST_SUITE = suite()
TEST_RUNNER.run(TEST_SUITE)

您可以递归执行此操作,直到项目的根目录。因此,来自包 A 的主测试将收集包 A 中的所有模块 + 来自包 A 的子包的主测试,依此类推。我假设你正在使用 unittest 因为你没有提供任何额外的细节,但我认为这个结构也可以应用于其他 python 测试框架。


编辑:嗯,我不太确定我是否完全理解您的问题,但据我所知,您想在同一个套件中添加 suiteFilter.py 中定义的套件和 Invoice.py 中定义的测试用例?如果是这样,为什么不直接在 mainTest.py 中做,例如:

import unittest
import suiteFilter
import Invoice


def suite()
test_suite = unittest.TestSuite()
test_suite.addTest(suiteFilter.suite())
test_suite.addTest(unittest.makeSuite(Invoice))


if __name__ == "__main__":
result = unittest.TextTestRunner(verbosity=2).run(suite())
sys.exit(not result.wasSuccessful())

您可以将所有相同的测试和套件添加到 test_suite。

关于python - 带有测试套件和测试用例的 TestSuite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6993711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com