Запускать машинописные файлы / с декоратором одновременно

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

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

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

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

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

@test()
class TestDataUnitsTest {

    public startup() {

    }

    public testOne(){

    }

    public testTwo(){

    }
}

Всего 1 ответ


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

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)
     };
}

См площадка


Есть идеи?

10000