Запускать машинописные файлы / с декоратором одновременно - PullRequest
1 голос
/ 10 февраля 2020

У меня следующий сценарий:

  • Пять class;
  • Каждый из пяти class имеет одинаковый декоратор @test;
  • Decorator @test получить все functions из class и сохранить в stati c variable tests;

Я хочу запустить все методы одновременно, хранящиеся в stati c переменная tests. Итак, как я могу это сделать?

obs: Я изучаю машинопись, поэтому я новичок в языке. И я пытаюсь создать для учебных целей среду, которая запускает тесты, подобные MSTest, nUnit, xUnit (c#).

Пример класса:

@test()
class TestDataUnitsTest {

    public startup() {

    }

    public testOne(){

    }

    public testTwo(){

    }
}

1 Ответ

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

Это должно работать:

const tests: { [name: string]: Function } = {};

function Test() {
     return function (target: Function) {
          const proto = target.prototype;
          const functions = Object.getOwnPropertyNames(proto)
               .filter(prop => prop !== 'constructor')
               .map(prop => proto[prop])
               .filter(prop => typeof prop === 'function');

          functions.forEach((fn: Function) => tests[`${target.name}.${fn.name}`] = fn)
     };
}

См. Детская площадка

...