我正在寻找一种方法来添加一个新的“模式”在Pysys的基础上。
特别是,我想添加一个验证模式,它只是重新运行验证部分。当您编写测试用例并尝试调优验证条件以适应当前输出时,无需重新运行完整的测试用例,这是非常有用的。
在不改变原来的类的情况下,最好的方法是什么?
发布于 2015-07-17 10:53:04
不幸的是,这需要框架的支持。问题是,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')其中我省略了执行和验证的实现。您需要将模式添加到测试的描述符中。
<classification>
<groups>
<group></group>
</groups>
<modes>
<mode>repeat</mode>
</modes>
</classification>并使用"pysys.py run -mrepeat“运行。这将有助于调试,如果您的执行需要很长的时间,但可能不希望您想要开箱即运行的顶级选项的运行程序只是执行验证之前运行的测试。我将为此添加一个特性请求。
发布于 2019-04-02 13:40:58
自从最初的讨论以来,PySys (在V1.1.1中)添加了一个-validateOnly命令行选项(在1.1.1中)--它跳过了execute方法,只运行了validate。
假设您没有使用--_但是,假设满足了这些条件,在完成测试的第一次运行之后(非空的)输出文件仍然存在,并且可以使用--validateOnly命令重新运行验证。
要获得这个特性,您可以安装最新的PySys版本(1.4.0) -参见https://pypi.org/project/PySys/
https://stackoverflow.com/questions/31472956
复制相似问题