如何解决Azure DevOps版本-如何在特定虚拟机上执行测试阶段?
在Azure => Pipelines
之后,我得到了两个已发布的工件:一个包含一个.NET Core控制台应用程序(myDrop
),另一个包含相应的测试库(用xUnit编写)({{1} })。然后,我进入myTestDrop
以创建新的发布管道,如下所示:
我有一个Windows虚拟机(VM),该虚拟机已安装了所有必需的库,例如.NET Core;并且我想在该计算机上进行集成测试(上面的第二阶段)。具体来说,
- 将
Azure => Releases
和myDrop
复制到该VM。 - 设置一些环境变量:
myTestDrop
中MyConsole.exe
的路径。 - 然后运行集成测试:
myDrop
- 如果测试成功,则
dotnet vstest "MyConsole.Tests.dll" --logger:trx --ResultsDirectory:"c:/Somewhere" /TestCaseFilter:"Category=IntegrationTest"
返回的代码为dotnet.exe
(否则为0
)。 - 只有在第二阶段成功的情况下,第三阶段才会运行。
- 应该有一种方法可以读取上面的集成测试生成的
1
,尤其是在某些测试失败的情况下。
我在Azure DevOps方面的经验有限。我进行了搜索,但是大多数Azure版本示例都涉及Web应用程序(IIS,SQL ...),而不是在特定VM上具有测试功能的普通控制台应用程序。鉴于上述情况,请随时提出其他替代方案或最佳做法。
任何建议,建议都值得赞赏。
解决方法
如何在特定虚拟机上执行测试阶段?
您可以在该计算机上安装和使用自托管代理。请参考this document安装自托管Windows代理。您需要首先将代理作业添加到发布管道。然后,选择安装了自托管代理的代理池。
将myDrop和myTestDrop复制到该VM。
由于您的代理已安装在VM上,它将自动将工件下载到其本地文件夹中。
只有在第二阶段成功的情况下,第三阶段才会运行。
您可以在预部署条件下选择“ After Stage”触发器。例如,如果屏幕截图中的测试阶段失败,则部署阶段将不会部署。
应该有一种方法来读取集成生成的* .trx 请进行上述测试,尤其是在测试失败的情况下。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。