0

我正在使用带有 'cypress-junit-reporter' 的 cypress 将测试结果输出到 XML 文件。我最近调整了运行黄瓜功能文件的设置,但我希望将完整的功能文件文本输出到 XML 结果文件,而不是目前只是拉入场景。我怎样才能做到这一点?

赛普拉斯.json

{
    "chromeWebSecurity": false,
    "baseUrl": "https://www.testurl.com",
    "defaultCommandTimeout": 10000,
    "requestTimeout": 20000,
    "experimentalFetchPolyfill": true,
    "video": false,
    "scrollBehavior": "nearest",
    "reporter": "cypress-junit-reporter",
    "reporterOptions": {
        "mochaFile": "cypress/results/output-[hash].xml",
        "jenkinsMode": true,
        "useFullSuiteTitle": true,
        "testsuitesTitle": true,
        "antMode": true
    },
    "experimentalSourceRewriting": true,
    "testFiles": "**/*.{feature,features}"
}

输出 XML 文件

?xml version="1.0" encoding="UTF-8"?>
<testsuites>
  <testsuite name="" timestamp="2021-05-17T13:42:07" tests="0" file="cypress/integration/BDDTest.feature" package="" hostname="undefined" id="0" errors="0" time="0.00" failures="0">
    <properties>
    </properties>
    <system-out>
    </system-out>
    <system-err>
    </system-err>
  </testsuite>
  <testsuite name="Root Suite.Test scenarios for BDD" timestamp="2021-05-17T13:42:07" tests="1" package="Root Suite.Test scenarios for BDD" hostname="undefined" id="1" errors="0" time="9.05" failures="0">
    <properties>
    </properties>
    <testcase name="User can navigate to Login page" time="9.05" classname="Test scenarios for BDD">
    </testcase>
    <system-out>
    </system-out>
    <system-err>
    </system-err>
  </testsuite>
</testsuites>

测试特征

Feature: Test scenarios for BDD
Scenario: User can navigate to Login page
Given I open the homepage
When User clicks on the Login button
Then User should be on Login page
4

1 回答 1

0

在这种情况下,我建议使用 Mochawesome Reporter - 它是一个自定义报告器,可生成独立的 HTML/CSS/JSON 报告,例如:

在此处输入图像描述

第1步:安装 安装Mocha: npm install mocha --save-dev

安装 cypress-multi-reporters: npm install cypress-multi-reporters --save-dev

安装 mochawesome: npm install mochawesome --save-dev

安装 mochawesome-merge: npm install mochawesome-merge --save-dev

安装 mochawesome-report-generator: npm install mochawesome-report-generator --save-dev

第 2 步:在 cypress.json 中添加报告设置,例如:

"reporter": "cypress-multi-reporters",
    "reporterOptions": {
        "reporterEnabled": "mochawesome",
        "mochawesomeReporterOptions": {
            "reportDir": "cypress/reports/mocha",
            "quite": true,
            "overwrite": false,
            "html": false, 
            "json": true
        }
    }

然后在 package.json 文件中添加脚本:

"scripts": {
    "clean:reports": "rm -R -f cypress/reports && mkdir cypress/reports 
         && mkdir cypress/reports/mochareports",
    "pretest": "npm run clean:reports",
    "scripts": "cypress run",
    "combine-reports": "mochawesome-merge
         cypress/reports/mocha/*.json > cypress/reports/mochareports/report.json",
    "generate-report": "marge cypress/reports/mochareports/
         report.json -f report -o cypress/reports/mochareports",
    "posttest": "npm run combine-reports && npm run generate-report",
    "test" : "npm run scripts || npm run posttest"
  }

执行: -npm run test 它将自动运行您的测试套件,在“cypress/reports”下创建“mocha”文件夹,并在“mocha”文件夹中创建 .json 文件(每个执行的规范一个)

注意:这里有一个很好的视频 gid:Cypress - Mochawesome Reporter

PS:享受赛普拉斯 :)

于 2021-05-17T15:39:14.563 回答