Согласно документам mocha-allure, если вы хотите использовать allure за пределами before/beforeEach, вы должны напрямую импортировать репортер. Или после добавления mocha-allure-reporter создаст глобальный объект allure со следующим API:
https://github.com/allure-framework/allure-мокко
https://github.com/allure-examples/mocha-allure-example/blob/master/test/simple.spec.js
Однако я следовал примеру в документах, но я получаю Cannot find name 'allure'. при использовании его либо до, либо после каждого.
тестовый файл:
require('mocha-allure-reporter');
// const allure = require('mocha-allure-reporter'); // also tried this
describe( 'test', () => {
// code
before(async () => {
// code here
});
afterEach('first step', function () {
const testStep = allure.createStep('initial', () => {
console.info('create step');
});
});
конфигурация:
mochaOpts: {
reporterOptions: {
reporterEnabled:
mocha-allure-reporter,
mochaAllureReporterReporterOptions: {
targetDir: './reports/allure-results',
},
да mocha-allure-reporter уже в node_modules
вы получаете сообщение об ошибке из config или из файла test. потому что вы используете mocha-allure-reporter в обоих местах
из тестового файла
если импорт в вашем config не выдает никаких ошибок, импортируйте аналогичным образом в свою спецификацию
но в конфиге его просто добавили в mochaOpts. Так как же тогда использовать его в спецификации?





Попробуйте ниже
const allure = require('mocha-allure-reporter');
allure — это глобальный идентификатор, введенный репортером в ваш код.
Добавьте следующую строку в начало файла, чтобы сообщить об этом Typescript.
declare const allure: any;
Надеюсь, это поможет вам
Исходная ошибка исчезла. Но allure.createStep по-прежнему не работает. Опубликован новый вопрос: stackoverflow.com/questions/55125425/…
@Madhan, в каком файле это должно быть ??
Вы можете найти
mocha-allure-reporterв своемnode_modules. Если нет, используйтеnpm i mocha-allure-reporterиз папки вашего проекта.