0

是否可以运行在类似 testNG 的 python 或配置文件(或任何其他方式)中列出的 Python 模块(.py 文件,而不是方法)以特定/指定的顺序运行?

我知道每个测试用例都应该是完全独立的,但我需要运行

  1. 注册(将检索数据库密钥以完成注册过程) - 一个单独的 .py 文件,需要先运行
  2. 打开一些自定义字段 - 一个单独的 .py 文件(如果可能的话最好是几个 .py 文件,这样一个文件不会太大),需要运行第二个
  3. 然后运行所有其他测试用例,没有任何顺序 - 很多 .py 文件,每个文件都是一个测试用例

这个顺序很关键,否则一切都会失败

这可以使用 Java 和 testNG.xml 来完成 preserve-order="true",但我找不到 Python 的任何解决方案,特别是查看Proboscis

任何帮助表示赞赏

4

1 回答 1

0

通过执行的测试应该以能够独立运行的方式设计。纯单元测试提供了一个好处,即当它们失败时,它们通常会描述究竟出了什么问题。在使用框架的功能测试或系统测试的unittest情况下,由于Selenium会自动执行Browsing Context ,因此如果不订购它们就无法执行它们。为了实现排序,您至少需要为测试名称使用更好的命名约定,例如:、、、test_1test_2test_3这是因为测试是根据字符串的内置排序进行排序的。一个例子:

  • 代码:

    import unittest
    
    class Test(unittest.TestCase):
    
        def test_1(self):
        print("I'm in test 1")
    
        def test_2(self):
        print("I'm in test 2")
    
        def test_3(self):
        print("I'm in test 3")
    
    if __name__ == "__main__":
        unittest.main()
    
  • 控制台输出:

    Finding files... done.
    Importing test modules ... done.
    
    I'm in test 1
    I'm in test 2
    I'm in test 3
    ----------------------------------------------------------------------
    Ran 3 tests in 0.001s
    
    OK
    
于 2020-03-09T15:16:04.843 回答