код выхода в mocha.js в Node.js - PullRequest
0 голосов
/ 26 июня 2018

Я тестирую функцию, которая на самом деле печатает на консоли в конце.Я проверяю это на stdin и утверждаю соответственно.Но если я сделаю это, то процесс завершится только в том случае, если я нажму клавишу ввода на клавиатуре или вызову process.exit(0) в after() самого внешнего describe().Теперь, если я вызову process.exit(0), то даже если тестовые случаи не пройдены, я все равно получу статус выхода 0, как мне выйти с кодом выхода mocha?Или есть лучший способ добиться этого (я не собираюсь менять свой код, поскольку это инструмент CLI).

Мой код тестирования:

describe('Testing createTestExecutionForTestCases(testExecutionData)', () => {

    const testExecutionData = {
      info: {
        summary: 'summary',
      },
      tests: [{
        testKey: 'KEY-11',
        comment: 'failed',
        status: 'FAIL',
      }],
    };
    before(() => {

      const basePath = `${JIRAConfig.host}:${JIRAConfig.port}`;
      process.env.TOKEN = 'fake_token';
      const issueSearch = nock(basePath);
      issueSearch
        .post(`${JIRAConfig.testExecutionEndpoint}`, () => true).reply(200, {
          testExecIssue: {
            id: '11410',
            key: 'KEY-1',
            self: 'http://172.16.201.132:8080/rest/api/2/issue/11410',
          },
        })
        .post(`${JIRAConfig.testExecutionEndpoint}`, () => true).reply(404, {
          error: 'ERROR',
          errorMessage: 'Summary could not be empty',
        });

    });

    after(() => {

      nock.cleanAll();

    });

    it('Should create test execution issue in JIRA', async () => {

      await createTestExecutionForTestCases(testExecutionData);

      process.stdin.setEncoding('utf8');

      process.stdin.on('readable', () => {

        const chunk = process.stdin.read();
        if (chunk !== null) {

          expect(chunk).to.be.a('string');
          expect(chunk).to.equal('Test Execution created with ID KEY-1');

        }

      });

    });

    it('Should not create test execution issue if any of the mandatory is not present', async () => {

      await createTestExecutionForTestCases(testExecutionData);

      process.stdin.setEncoding('utf8');

      process.stdin.on('readable', () => {

        const chunk = process.stdin.read();
        if (chunk !== null) {

          expect(chunk).to.be.a('string');
          expect(chunk).to.equal('Unable to create Test Execution');

        }

      });

    });

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