在Azure DevOps发布管道中运行Java Selenium测试

时间:2019-09-05 14:08:39

标签: java maven selenium testng azure-pipelines-release-pipeline

我正在为AzureDevops CI / CD管道中的Java项目做POC。我创建了一个具有Selenium测试(TestNG)的Maven项目,该项目针对与我的项目无关的演示网站运行。我想在构建管道中运行单元测试,并在发布管道中运行UI Selenium测试。

Visual Studio test任务似乎是我需要的基石。我认为您可以使用** \ unit * Test.dll,** \ ui * Test等“测试文件”字段来区分单元测试和UI测试。不幸的是,此任务对于Java项目不可用/不兼容。

我能够在构建过程中使用Maven任务和Surefire插件运行Selenium测试,但是请记住,我只想在构建过程中运行单元测试。

实际上,我可以通过以下解决方法在发布管道中运行Selenium测试:

  • 在构建过程中将整个项目复制到发行版的工件目录(复制文件任务)。
  • 将Maven任务添加到发布管道
  • 在pom.xml中触发Selenium测试

通常,您只会将工件复制到工件目录中,因此我认为这样做是一个巨大的漏洞。

另一个问题是Maven将在构建和发布期间构建项目,这很浪费。为了回避浪费,一些精明的Maven配置可能会有所帮助。我曾考虑过在发布期间跳过编译并解决依赖关系,但我不知道在DevOps生态系统中的哪里可以找到Maven依赖关系。

我是否缺少某些东西,或者AzureDevops可能不能很好地支持Java?

1 个答案:

答案 0 :(得分:0)

您可以尝试像在构建管道中一样在发布管道中添加测试任务。 并在构建管道中添加复制任务,以将测试代码和文件复制到构建工件,并将其发布以发布管道。

以下步骤仅供参考(在经典视图中)。帮助它会有希望。

1,在构建管道中添加copy file任务,以将所有测试文件和所有从属设置文件复制到工件中的测试文件夹中。

enter image description here

2,发布工件以发布管道

enter image description here

3,在发布管道中,添加任务以执行测试,就像在构建管道中一样

enter image description here