Cypress - Ошибка при выполнении Cypress Open - PullRequest
1 голос
/ 14 марта 2019

У меня есть инфраструктура тестирования с узлом, кипарисом, мокко, mochawesome и mochawesome-merge, как показано ниже, с этим репозиторием github :

enter image description here

и в моем package.json у меня есть два сценария:

`"scripts": {
    "cy": "./node_modules/.bin/cypress open",
    "cy_test": "node cypress.js"
  },`

Если я запускаю npm run cy_test, он отлично работает в автономном режиме, но если я запускаю npm run cy, я получаю следующую ошибку:

enter image description here

Но если я удалю cypress.js из своего проекта, он будет работать как положено.

cypress.js

const cypress = require('cypress')
const marge = require('mochawesome-report-generator')
const { merge } = require('mochawesome-merge')

const currRunTimestamp = getTimeStamp();

const mergedReport = {
    reportDir: 'mochawesome-report',
}

const finalReport = {
    reportDir: 'reports',
}

cypress.run({
    reporter: 'mochawesome',
    reporterOptions: {
        reportDir: 'mochawesome-report',
        overwrite: false,
        html: true,
        json: true
      }
    }).then(
    () => {
        generateReport()
    },
    error => {
        generateReport()
        console.error(error)
        process.exit(1)
    }
)

function generateReport(options) {
    return merge(mergedReport).then(report => marge.create(report, finalReport))
}

1 Ответ

0 голосов
/ 14 марта 2019

Я думаю, что это проблема с npm в Windows, которая работает с именами файлов, потому что npm пытается запустить скрипт как двоичный файл вместо того, чтобы получать его из ./node_modules/.bin.

.В качестве первой попытки я предложу изменить имя cypress.js на другое, отличное от cypress.Я думаю, что это может решить вашу проблему.

Если нет, то в качестве обходного пути удалите .JS из переменной среды PATHEXT и перезапустите процессы, на которых выполняется скрипт, включая вашу IDE, если применимо.

Надеюсь, это сработает.

...