Экспорт переменной в тесте Мокко - PullRequest
0 голосов
/ 27 августа 2018

Чтобы пролить свет на то, что я пытаюсь сделать, это: после запуска приведенного ниже теста я получаю сгенерированный report.json и токен, который я сгенерировал в ловушке before, и отправляю отчет другому API для его обработки. .

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

var token = 'un_assigned';

describe('Comparison', function () {
  token = 'sin asignar';
  before(function (done) {
    getToken('app', function (response) {
      token = response.token;
      done();
    })
  });

  files.forEach(function (file) {
    it('Comparing ' + file, function (done) {
      const id = file.split('./screenshots/')[1];
      compare(file, id, token, function (response) {
        expect(response.TestPassed).to.be.true;
        done();
      });
    });
  });

  after(function (done) {
    done();

  })
});


exports.tokenApi = function getToken(){
  console.log(token);
  return token;
};

После запуска теста мне нужно передать токен генерации в другой файл JS, чтобы я мог обработать отчет mocha. Я попытался использовать экспорт, но когда я вызываю свою функцию, она вызывает мой тест. Я JS Noob есть что-то, что мне не хватает?

1 Ответ

0 голосов
/ 27 августа 2018

Использовать файловую систему (рекомендуется)

Используйте модуль fs для записи токена в файл, затем просто прочитайте этот токен, как требуется.

const fs = require('fs')
    exports.tokenApi = function getToken(){
      console.log(token);
     // write token to file here
      fs.writeFile('token.txt', token, (err) => console.error(err))
      return token;
    };

Или используйте синтаксис модуля узла

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

tokenApi = function getToken(){
  console.log(token);
  return token;
};
module.exports=tokenApi

Однако второй метод не будет работать с вашим примером, так как токен будет установлен только после запуска теста.

Также вам не следует импортировать набор тестов, если вы не собираетесь запускать тесты, так как стандартный файл javascript не будет иметь никаких знаний о командах mocha.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...