Авто генерировать документацию из тестов (javascript, шутка) - PullRequest
1 голос
/ 22 апреля 2020

Я хочу генерировать документацию, которая зависит от тестов. Например, у меня есть файл с тестами:

describe("sum", () => {
  it("sums 1 and 2", () => {
    expect(sum(1, 2)).toEqual(3);
  });
  it("sums 3 and 4", () => {
    expect(sum(3, 4)).toEqual(7);
  });
});

describe("multiplication", () => {
  it("multiply 10 and 20", () => {
    expect(multiplication(10, 20)).toEqual(200);
  });
  it("multiply 30 and 40", () => {
    expect(multiplication(30, 40)).toEqual(1200);
  });
});

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

// Index test cases

// sum
// - [x] sums 1 and 2
// - [x] sums 3 and 4

// multiplication
// - [x] multiply 10 and 20
// - [x] multiply 30 and 40

describe("sum", () => {
  it("sums 1 and 2", () => {
    expect(sum(1, 2)).toEqual(3);
  });
  it("sums 3 and 4", () => {
    expect(sum(3, 4)).toEqual(7);
  });
});

describe("multiplication", () => {
  it("multiply 10 and 20", () => {
    expect(multiplication(10, 20)).toEqual(200);
  });
  it("multiply 30 and 40", () => {
    expect(multiplication(30, 40)).toEqual(1200);
  });
});

И файл уценки, который я могу опубликовать sh на GitHub Wiki:

# Index test cases

## sum
 - [x] sums 1 and 2
 - [x] sums 3 and 4

## multiplication
 - [x] multiply 10 and 20
 - [x] multiply 30 and 40

Может быть, есть лучшие практики для таких вещей или готовые к использованию пакеты? Может мне стоит использовать JSDo c? Главное - создать «сводку» и не читать сотни строк тестов.

Рабочий процесс может быть:

write tests => run generateDocs.js => summary adds at top of file and markdown file creates

Созданная песочница здесь: https://codesandbox.io/s/documentation-from-tests-u9n3z

...