Python 使用每个方法中相同的随机数据运行多个unittest.TestCase方法
我想用Python中的Selenium RC执行测试套件。在这组测试中,我想:Python 使用每个方法中相同的随机数据运行多个unittest.TestCase方法,python,testing,selenium,Python,Testing,Selenium,我想用Python中的Selenium RC执行测试套件。在这组测试中,我想: 借助Selenium在网站上模拟用户输入数据 检查数据是否正确放入数据库 从所选帐户获取电子邮件,并对其进行分析以检查数据是否正确 所有测试原则上都已完成,但它们不能作为包含这三个测试的整个测试套件工作。我试图在setUp方法中生成数据,但在所有测试中数据都不同。我已经了解到在每个测试执行中都会运行setUp()和tearDown()方法,所以我尝试将数据生成器移动到测试类构造函数中,但我仍然无法处理它 我的测试结构
class TestClass(unittest.TestCase):
def __init__(self, TestClass):
unittest.TestCase.__init__(self, TestClass)
self.define_random_data()
def setUp(self):
db_connection_function(self)
def some_internal_methods(self):
...
def test_website_data_input(self):
...
def test_db_test(self):
...
def test_email_parse(self):
...
def tearDown(self):
...
suite = unittest.TestLoader().loadTestsFromTestCase(TestClass)
unittest.TextTestRunner(verbosity=2).run(suite)
我做错了什么?在每个测试中生成的数据都是不同的,我不知道如何处理它——我尝试在每个可能的地方运行这个方法,但它仍然是错误的 啊,好的。将为运行的每个测试方法创建TestClass的新实例。所以你必须这么做
import unittest
import random
random_data = random.random()
class TestClass(unittest.TestCase):
def __init__(self, TestClass):
unittest.TestCase.__init__(self, 'test_first')
self.data = random_data
def test_first(self):
self.fail(self.data)
def test_second(self):
self.fail(self.data)
if __name__ == '__main__':
unittest.main()
我刚刚测试了它,并为每个测试输出了相同的失败消息。随机数据仅在导入测试模块时生成 啊,好的。将为运行的每个测试方法创建TestClass的新实例。所以你必须这么做
import unittest
import random
random_data = random.random()
class TestClass(unittest.TestCase):
def __init__(self, TestClass):
unittest.TestCase.__init__(self, 'test_first')
self.data = random_data
def test_first(self):
self.fail(self.data)
def test_second(self):
self.fail(self.data)
if __name__ == '__main__':
unittest.main()
我刚刚测试了它,并为每个测试输出了相同的失败消息。随机数据仅在导入测试模块时生成 你的问题不清楚是什么问题。您说每个测试都有不同的生成数据。但是在你的init方法中你调用了一个叫做“define_random_data”的东西?它是否每次调用时都会返回随机数据?这可能是您的问题。我想为整个测试套件生成一次随机数据。生成它,通过网站输入,然后检查它是否存在于数据库和发送给客户的电子邮件中。不清楚您的问题是什么。您说每个测试都有不同的生成数据。但是在你的init方法中你调用了一个叫做“define_random_data”的东西?它是否每次调用时都会返回随机数据?这可能是您的问题。我想为整个测试套件生成一次随机数据。生成它,通过网站输入,然后检查它是否存在于数据库和发送给客户的电子邮件中。是的,这很有效。在我的例子中有点不同——我有几个变量要存储,所以我用它们创建了一个类。谢谢你的帮助。是的,很有效。在我的例子中有点不同——我有几个变量要存储,所以我用它们创建了一个类。谢谢你的帮助。