Pysys - 如何仅运行测试的验证部分

时间:2015-07-17 09:46:03

标签: python unit-testing pysys

我正在寻找一种方法来添加一个新的"模式"在Pysys Baserunner。

特别是我想添加一个验证模式,只需重新运行验证部分。在编写测试用例并尝试调整验证条件以便适应当前输出时非常有用,而无需重新重新保存完整的测试用例。

在不更改原始课程的情况下,最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

遗憾的是,这需要框架的支持。问题是BaseRunner类将始终自动清除输出目录,并且框架中没有挂钩以允许您避免这种情况。例如,您可以手动移动输出子目录,然后重新运行验证,然后再说“重复”(相同的目录级别),然后使用;

from pysys.constants import *
from pysys.basetest import BaseTest

class PySysTest(BaseTest):
    def execute(self):
        if self.mode=='repeat': pass

    def validate(self):
        if self.mode=='repeat':
            self.output=os.path.join(self.descriptor.output, 'repeat')

我已经省略了execute和validate的实现。您需要将模式添加到测试的描述符中

  <classification>
    <groups>
      <group></group>
    </groups>
    <modes>
      <mode>repeat</mode>
    </modes>
  </classification>

并使用“pysys.py run -mrepeat”运行。如果您的执行需要很长时间,这可能有助于调试,但可能不希望您想要开箱即用,即跑步者的顶级选项只是对先前运行的测试执行验证。我将为此添加功能请求。

答案 1 :(得分:1)

自从最初的讨论以来,--validateOnly命令行选项已添加到PySys(在v1.1.1中),该选项几乎可以执行您的建议-它跳过execute方法并仅运行validate。

假设您未使用--purge(我认为对于此用例是一个安全的假设),并且您没有验证命令尝试从输出目录读取零字节文件(该命令即使未指定--purge,总是会被删除)。但是,假设满足这些条件,则在完成第一次测试后,您的(非空)输出文件仍然会存在,并且您可以使用--validateOnly命令重新运行仅验证。

要获得此功能,您可以安装最新的PySys版本(1.4.0)-请参见module