【问题标题】:How to run multiple Karma & Jasmine projects in a single solution (Need for Jenkins integration)?如何在单个解决方案中运行多个 Karma 和 Jasmine 项目(需要 Jenkins 集成)?
【发布时间】:2018-08-06 11:01:30
【问题描述】:

我们有一个包含不同 Karma 和 Jasmine 测试项目的大型解决方案。 我们正在使用 Jenkins 进行 CI,我们只想运行 Karma 执行命令一次。含义:我们不想一一注册每个项目的路径。 有什么方法可以通过单个命令运行所有测试用例吗?


我的想法是: 创建一个 MainTests 项目并在 MainTests 项目的 karma.conf.js 文件中引用其他项目的 karma.conf.js 文件的 files[] 数组中的所有 js/spec 文件,然后我将使用 Jenkins 仅运行 MainTests 项目。

请看下面的截图


还有它的普通 JS,我们没有使用 Angular/AngularJS

请提出适当的解决方案,我将不胜感激!

【问题讨论】:

  • 嗨@Arun。你是在使用一些 jenkins 插件还是只是 cmd 命令?你的 jenkins 是在 windows 还是 linux 上?
  • 嗨@JRichardsz,感谢您的回复!是的,我正在使用 Jenkins 插件(节点插件)。 Jenkins 在 Windows 上。
  • 只是为了开发目的?我的意思是,Jenkins 和 nodejs 正在你的笔记本电脑或 cpu 中运行?
  • 现在它在我的本地主机上,稍后我将它部署在远程某个地方。

标签: javascript angular jenkins angular-cli karma-jasmine


【解决方案1】:

暂时

我创建了 Windows 批处理命令来查找所有业力解决方案并运行 NPM 安装 业力开始

它对我有用。

查看下面的批处理命令:

@Echo off

Echo Searching for new karma.conf.js files...

FOR /R "%WORKSPACE%" %%F IN (.) DO (

ECHO Node module found!

    Echo inside %%F 

IF EXIST "%%F\karma.conf.js" (

   ECHO "File exist here. 

   cd %%F

 Echo %%F | FINDSTR /C:"node" >Installing node packages" nul & IF ERRORLEVEL 1 (

Echo Installing node packages"

npm install

.\node_modules\.bin\karma start --reporters html

) else (ECHO CASE FALSE)

) ELSE (
   ECHO "File not exist") 
)

【讨论】:

    【解决方案2】:

    一次运行所有解决方案 Angular CLI 和 Karma CLI

    $testProjects = Get-ChildItem -Path $env:WORKSPACE -Filter "karma.conf.js" -Recurse | ForEach-Object FullName | Select-String -notmatch "node_modules"
    
    foreach ($project in $testProjects)
    {
    $project = $project -replace "karma.conf.js",""
    
    
    Set-Location -Path $project
    npm install
    
    
    if(Test-Path $project".angular-cli.json")
    {
    Write-Host "***** angular cli project *****"
    Write-Host "File path : "$project
    .\node_modules\.bin\ng test -code-coverage
    
    }
    else{
    Write-Host "***** karma cli project *****"
    .\node_modules\.bin\karma start --reporters html
    
    $reportName = "report.html"
    
    $leafName = Split-Path $project -leaf
    $newReportName = $leafName + ".html"
    Rename-Item $reportName $newReportName
    
    Copy-Item -Path $newReportName -Destination C:\
    
    Remove-Item $newReportName
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-03
      • 2016-09-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      相关资源
      最近更新 更多