Как запустить javascript модульные тесты для разных версий зависимостей? - PullRequest
0 голосов
/ 20 февраля 2020

В Python я могу сделать это, используя Tox и pytest . Они позволяют мне запускать мои модульные тесты в различных комбинациях Python версий и зависимостей.

Например, по какой-то причине мне нужно протестировать эту функцию для запуска на currency.js@~1.1.0 и currency.js@~1.2.0.

import * as currency from 'currency.js';

export function getAmount(amountStr: string): number {
  return currency(amountStr).intValue;
}
import { getAmount } from './get-amount';

describe('getAmount', () => {
  [
    { given: 'A$ 1.00', expecting: 100 },
    { given: 'A$ 1.33', expecting: 133 },
    { given: 'A$ 1.89', expecting: 189 },
  ].forEach(({ given, expecting }) => {
    describe(`given ${given}`, () => {
      it(`should return ${expecting}`, () => {
        expect(getAmount(given)).toEqual(expecting);
      });
    });
  });
});

Итак, я спрашиваю: что такое NodeJS эквивалент Python Tox?

Для большего контекста я использую TypeScript, Angular и шутка .

1 Ответ

0 голосов
/ 20 февраля 2020

NPM позволяет создавать псевдонимы библиотек при их установке:

npm install currency.js-legacy@npm:currency.js@1.1.0

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

Затем импортируйте оба файла в свои тестовые файлы и используйте все, что вам нужно. Например:

import currency from 'currency.js';
import currency-legacy from `currency.js-legacy';

Я не тестировал код, но вы все равно можете получить представление о вышеизложенном.

...