问题描述
我正在使用Team Foundation版本控制作为.NET Core 2.1项目的源代码控制。 将AzureDevOps配置为持续集成以签出代码并进行构建。 我们有3个环境(Staging,PreProd,Prod)。暂存不是与Prod等距的,因此它是不可信的,我们必须使用环境数据对每个环境执行集成测试。 我的构建是由只能访问Prod环境的OnPremise服务器上的AzureDevOps中的代理生成的。
我想在AzureDevOps管道中自动化我的XUnit集成测试,但是,我不知道在哪里以及如何去做。构建后是否应该执行集成测试步骤?还是释放后?
看来我需要先在环境中部署二进制文件,然后执行集成测试,如果出错,请回滚发行版。
很奇怪?!?
如何解除这种情况?
此致
解决方法
如果要运行集成测试,则需要先将二进制文件部署到环境中。您可以单独进行:
- 步骤
- 阶段
- 管道
部署代码后。
在这里由您决定如何执行。 (要获得最后一个选项,您需要使用pipeline triggers)
如果您遵循左移方法,则意味着您可以尽快发现问题,而不必担心会出现问题。如果在登台时发生,我宁愿鼓励您解决此问题,而不要回滚代码。尤其是涉及数据模型更改的情况。
在生产中,您只能运行冒烟测试,这是一种集成测试,不会影响状态。它们就像REST中的GET
一样-烟雾测试应该是幂等的,因此您可以运行它们而不必担心状态改变。
由于使用的是TFVC版本,因此可以定义构建管道来构建和测试代码,然后发布构件。您还定义了发布管道来使用这些工件并将其部署到部署目标。
由于必须使用环境数据在每个环境上执行集成测试,因此可以通过Release pipeline在VSTest task中运行XUnit集成测试。