GitlabCI - 多个环境NUnit到同一个构建

时间:2017-09-20 19:31:04

标签: testing continuous-integration nunit gitlab-ci

逗人

我的持续集成+测试项目正在专用服务器上运行gitlabci文件。运行多个环境是我完成此项目的目标。

例如:我有两个环境(desenv和homol),我的愿望是构建项目,并且在每个环境中运行后,这些测试仅更改 test-automation-inscricao中的一些变量(链接,数据库用户) -vestib.dll.config

我创建了一个包含3个作业的yml文件:

  • 构建:测试 - > nuget恢复和构建项目
  • 测试:desenv - > 将file.dll.config更改为环境的相应配置文件并运行testes(NUnit)
  • 测试:homol - > 将file.dll.config更改为环境的相应配置文件并运行testes(NUnit)

有没有正确的方法来做到这一点?因为我的gitlabci-runner在这种配置下无法正常工作。 E.g:

Error

这是我的yml代码:

stages:
  - build
  - test

build:test:
  only: 
   - schedules
   - web
  stage: build
  tags:
   - windows
  script:
  #Restore Nuget
   - '"C:\\Gitlab-Runner\\nuget.exe" restore "test-automation-inscricao-vestib.sln"'

  #Build project
   - '"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\msbuild.exe" /t:Clean,Build /p:Configuration=Debug "test-automation-inscricao-vestib.sln"'
  artifacts:
   paths:
    - test-automation-inscricao-vestib\bin\Debug

test:desenv:
  only: 
   - schedules
   - web
  stage: test
  tags:
   - teste
  script:
  #Change the environment to DESENV
   - powershell Remove-Item test-automation-inscricao-vestib\bin\Debug\test-automation-inscricao-vestib.dll.config
   - powershell Rename-Item test-automation-inscricao-vestib\test-automation-inscricao-vestib_DESENV.dll.config test-automation-inscricao-vestib\bin\Debug\test-automation-inscricao-vestib.dll.config

  #Run tests
   - cd test-automation-inscricao-vestib/bin/Debug
   - '"C:\\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" "test-automation-inscricao-vestib.dll" --where "cat==Producao"'

  dependencies:
   - build:test   


test:homol:
  only: 
   - schedules
   - web
  stage: test
  tags:
   - teste
  script:
  #Change the environment to HOMOL
   - powershell Remove-Item test-automation-inscricao-vestib\bin\Debug\test-automation-inscricao-vestib.dll.config
   - powershell Rename-Item test-automation-inscricao-vestib\test-automation-inscricao-vestib_HOMOL.dll.config test-automation-inscricao-vestib\bin\Debug\test-automation-inscricao-vestib.dll.config

  #Run tests
   - cd test-automation-inscricao-vestib/bin/Debug
   - '"C:\\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" "test-automation-inscricao-vestib.dll" --where "cat==Producao"'

  dependencies:
   - build:test   

1 个答案:

答案 0 :(得分:0)

我找到了解决这个错误的方法。我在每个NUnit运行行中添加了一些标签,它可以工作!看这里:

在:

- '"C:\\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" "test-automation-inscricao-vestib.dll" --where "cat==Producao"'

后:

- '"C:\\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" "test-automation-inscricao-vestib.dll" --inprocess --labels=On --where "cat==Producao"'

仅修复了这些标记: - inprocess --labels = On