python/selenium/unittest变量不希望持久化

ryoqjall  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(189)

我正在使用python编写单元测试 unittest 模块。我有一个 Transact 类,该类使用selenium bot通过前端生成测试事务。对该类的调用如下所示:

Transact(amount=90, paypal=True)

这将使用paypal支付90美元的测试交易。
我用这种方法定义了十几个不同参数的单元测试。我把他们放在这样一个班里:

class TestTransactions(unittest.TestCase):

    def test_default(self):
        Transact()

    def test_amount_change(self):
        Transact(amount=10)

    ...

    def test_paypal(self):
        Transact(amount=90, paypal=True)

当我注解掉所有其他测试并运行任何一个单元测试时,它都能完美地工作。然而,当我试着跑的时候 unittest.main() 为了运行所有定义的测试,他们开始共享变量——例如,只有一个测试应该使用paypal支付,但有几个测试随机使用paypal支付,即使没有指示这样做。
正如您在我的代码示例中所看到的,每次我示例化一个新对象时,我都不确定这些以前的值是如何持久化的——至少,这是我假设正在发生的事情,但我始终无法弄清楚它为什么要这样做。任何指导都将不胜感激。
编辑以根据评论提供更多信息:
对于transact()类的每个示例化,selenium bot都会打开一个浏览器,执行所需的操作,然后完全关闭browser/selenium驱动程序。从一个测试到另一个测试,不应该有任何数据或任何其他维护——每个测试都是完全独立的。
如果有用的话,我怀疑罪魁祸首是unittest模块,因为所有测试都是单独工作的,只有在调用 unittest.main() 它似乎混淆了变量。有什么好处?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题