目前,我们在自己的存储库中分离了15+微服务,每个服务都包含它们的统一测试和集成测试,这些测试是在新提交时运行的。
我们也有两个客户使用我们的微服务,一个网站和一个移动应用程序。他们中的每一个都在自己的存储库中。
目前我们还没有任何验收测试。
然后,我想到了以下问题:如果我发布一个新版本的user service,那么它的所有相应的统一测试和集成测试都将运行(创建、更新、删除等等)。
现在我想让我们的验收测试运行,假设我希望我的用户成功地下订单,步骤如下:
这些测试必须驻留在users存储库中,或者应该创建一个完全独立的存储库,在每次对任何服务进行新提交时执行这些步骤?
例如,假设我对coupon service进行了新的提交,我之前提到的测试将不会运行,但是我可能会破坏一些只有customer service中的验收测试才会捕捉到的东西,这就是为什么我认为我应该有一个单独的存储库,称为AcceptanceTestProject,包含所有这些验收测试(或者至少是最重要的),每次提交都会运行。
目前,我认为我应该拥有这个单独的存储库,仅将验收测试作为我的管道的一部分,因此无论正在更新什么微服务,它都将运行。
但是如果我遗漏了什么,请纠正我的想法。
管道应该是这样的:
谢谢!
发布于 2019-05-22 07:23:41
我喜欢让验收测试尽可能接近代码。
如果您的验收测试是从用户的角度进行的,我会在网站或移动应用程序的代码存储库中找到它们。
如果网站和移动应用程序都使用相同的验收测试,您可以选择创建一个单独的存储库,但我认为我宁愿重复测试,因为这两个平台将来可能会出现分歧。我的经验是,移动应用程序通常是精简版的网站版本,有稍微不同的用户流量。此外,使用的测试框架(或变通方法/黑客)在网络和移动设备之间也会有所不同。
仍然想知道最简单的事情可能会起作用是什么。试一试,检查并调整。
https://sqa.stackexchange.com/questions/39282
复制相似问题