用于自动计划自动回归测试的执行顺序的框架?
|
我目前正在为相对复杂的应用程序实现测试套件的实现。该应用程序是基于Java和Spring的Web前端。前端测试也可以用Java编写(使用Silk4J及其自动化客户端)。实际上编写测试不是问题,这是容易的部分。它开始变得棘手的地方是可以执行各个测试的顺序。
当前,我们正在使用JUnit编写测试。由于JUnit是一个单元测试工具,因此执行测试的顺序是不确定的。如果仅为应用程序的每个模块创建测试,就会很快遇到麻烦。有些测试必须依靠其他部分才能正常工作,并且其他模块中的某些数据可用。我可以以将应用程序状态初始化为预定义状态,然后执行其测试的方式编写每个模块的测试,但是必须清理并准备该状态会很费力。更复杂的测试需要跨越多个模块的大量准备工作和测试场景。
我正在寻找的是一个测试框架,其中每个测试都可以以某种方式定义其需求以及它测试/提供的服务(对create-user-feature的测试实际上可以创建用户……至少应该如此) 。现在,我不想硬编码使用哪个数据和哪个顺序运行哪个测试,因为确定顺序非常复杂,并且对应用程序的更改将使得必须完全重构测试。
例如,我的“创建用户测试”将用户创建为实际检查用户是否正确创建的副作用。对我而言,只要使用该功能就可以使用userA,userB或userC进行测试就无关紧要。如果我现在有另一个测试\“ create-account-test \”,它要求只满足userC的用户,则测试系统应该知道\“哦... create-account-test需要userC,但尚未创建但是通过将userC传递给我的\“ create-user-test \\”,将创建它。因此,在最后的执行中,它先在user \ C之前运行\“ create-user-test \\”,然后再运行\“ create-account-test \因此使用“创建用户测试”的副作用来创建“创建帐户测试”所需的状态。
通过检查我的测试的要求和服务。这样的系统应该能够创建一个至少包含每个测试一次的非循环图(从而测试整个功能),而不必为每个测试准备/拆卸应用程序状态或在某种程度上无法触发错误。创建这样的图。至少通过这种方式,我可以创建仍可维护的巨大测试方案。
我知道这有点复杂。如果有人已经准备好在这样的框架上工作,我会用Google搜索一段时间。不幸的是我找不到类似的东西。
现在,我希望这里有人引导我使用工具,或者告诉我为什么这是一个完全不好的主意。 “嘿……好主意……还没有人创造出这样的东西”的回答……肯定会极大地浪费我的下班时间,因为那样的话我很可能会开始开发这样的工具;- )
克里斯
没有找到相关结果
已邀请:
2 个回复
稳赣苍卯改
末钉蹈泰唬