如何使用XUnit.Net Core 2.1和AzureDevOps进行自动化集成测试?

问题描述

我正在使用Team Foundation版本控制作为.NET Core 2.1项目的源代码控制。 将AzureDevOps配置为持续集成以签出代码并进行构建。 我们有3个环境(Staging,PreProd,Prod)。暂存不是与Prod等距的,因此它是不可信的,我们必须使用环境数据对每个环境执行集成测试。 我的构建是由只能访问Prod环境的OnPremise服务器上的AzureDevOps中的代理生成的。

我想在AzureDevOps管道中自动化我的XUnit集成测试,但是,我不知道在哪里以及如何去做。构建后是否应该执行集成测试步骤?还是释放后?

看来我需要先在环境中部署二进制文件,然后执行集成测试,如果出错,请回滚发行版。

很奇怪?!?

如何解除这种情况?

此致

解决方法

如果要运行集成测试,则需要先将二进制文件部署到环境中。您可以单独进行:

  • 步骤
  • 阶段
  • 管道

部署代码后。

在这里由您决定如何执行。 (要获得最后一个选项,您需要使用pipeline triggers

如果您遵循左移方法,则意味着您可以尽快发现问题,而不必担心会出现问题。如果在登台时发生,我宁愿鼓励您解决此问题,而不要回滚代码。尤其是涉及数据模型更改的情况。

在生产中,您只能运行冒烟测试,这是一种集成测试,不会影响状态。它们就像REST中的GET一样-烟雾测试应该是幂等的,因此您可以运行它们而不必担心状态改变。

,

由于使用的是TFVC版本,因此可以定义构建管道来构建和测试代码,然后发布构件。您还定义了发布管道来使用这些工件并将其部署到部署目标。

enter image description here

由于必须使用环境数据在每个环境上执行集成测试,因此可以通过Release pipelineVSTest task中运行XUnit集成测试。