【问题标题】:Should I avoid having multiple different 'common/util.py' files? If so, how?我应该避免拥有多个不同的“common/util.py”文件吗?如果是这样,怎么做?
【发布时间】:2018-11-18 21:01:34
【问题描述】:

我目前有一些结构如下的测试:

tests/
    category_a/
        sub_category_1/
            test_file_a11.py
            test_file_a12.py
        sub_category_2/
            test_file_a21.py
            test_file_a22.py
        sub_category_3/
            test_file_a31.py
            test_file_a32.py
    category_b/
        sub_category_4/
            test_file_b41.py
            test_file_b42.py
        sub_category_5/
            test_file_b51.py
            test_file_b52.py
        sub_category_6/
            test_file_b61.py
            test_file_b62.py

这对我们需要的东西非常有效。实际上,这种细分更有意义,并且有更多的类别/文件。这也适用于我们的非测试结构。

问题是我想拥有多个级别的共享代码。一些代码应该在所有测试之间共享,一些只在 category_a 中的测试之间共享,还有一些特定于子类别。我可以在每个级别添加一个 common.py,但最终我会使用 3 个不同的公共文件得到 test_file_a32。它有效,但我觉得阅读起来很混乱。

有没有更好的方法来做到这一点?

【问题讨论】:

  • 使用类和子类。子类应基于common.py 测试,并将继承所有可用的方法/功能。
  • @Adi219 那么你会给每个文件起什么名字呢?
  • all_tests.py/tests 目录内,a_tests.py/tests/a 目录内,subcat1_tests.py/tests 目录内。或者,您可以在 /tests 目录中拥有一个包含所有这些常见测试的文件,然后从不同文件中访问不同的测试。

标签: python


【解决方案1】:

在行业中,测试团队通常会使用类和子类来实现您所描述的内容。父类应称为common.py,其子类应包含自己的专门测试(common.py 测试将被继承)。

【讨论】:

  • 有道理。命名结构是什么?顶层是common.py,下一层是category_a_common.py,然后是sub_category_common.py?还是有其他常用的约定?
  • @user3715648 查看我对您问题的评论 :)
  • @user3715648 使用下划线和您使用的命名类型是一种常见的做法 :)
猜你喜欢
  • 1970-01-01
  • 2017-09-18
  • 2018-12-30
  • 2011-12-26
  • 2014-02-05
  • 2011-12-30
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多