Мокко запускает тест из удаленной спецификации - PullRequest
0 голосов
/ 21 февраля 2019

Я запускаю тесты с mocha для проекта узла в Visual Studio Code.Во время некоторого рефакторинга я переименовал одну из моих тестовых спецификаций с basic-heating-rule-spec.ts на rule-config-spec.ts.

Реорганизованный тест не удался, не так уж и много, но, похоже, ошибка указывает на то, что теперь удаленная basic-heating-rule-spec.tsвсе еще выполняется:

  49 passing (98ms)
  1 failing

  1) RuleConfig
       should load with valid data:
     Error: Config validation, cannot find timeOfDayConfig:hour and no default value supplied
      at getValue (src\config-validation.ts:52:15)
      at Function.getNumber (src\config-validation.ts:13:16)
      at new TimeOfDay (src\configuration\time-of-day.ts:32:53)
      at new RuleConfig (src\configuration\rule-config.ts:38:28)
      at Context.it (test\configuration\rule\basic-heating-rule-spec.ts:12:29)

Кажется, что старая спецификация где-то кэшируется.Я попытался перезапустить VSCode и перезагрузить компьютер, но несуществующий тестовый файл продолжает работать.Кто-нибудь знает, где файл кэшируется и как я могу его очистить?

Я выполняю тесты с npm run test, и мой package.json содержит это:

"scripts": {
    "clean": "rimraf lib",
    "lint": "tslint --force --format verbose \"src/**/*.ts\"",
    "build": "npm run clean && npm run lint && echo Using TypeScript && tsc --version && tsc --pretty",
    "test": "npm run build && mocha --require ts-node/register --recursive \"test/**/*-spec.ts\""
},

Мой tsconfig.json выглядит следующим образом:

{
    "compilerOptions": {
        "target": "es6",
        "lib": ["es6"],
        "module": "commonjs",
        "moduleResolution": "node",
        "noImplicitAny": true,
        "removeComments": true,
        "outDir": "./lib",
        "rootDir": ".",
        "preserveConstEnums": true,
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "declaration": true
    },
    "include": ["index.ts", "src/**/*.ts", "test/**/*-spec.ts"],
}

И еще более странно: переделанный rule-config-spec.ts содержит describe("RuleConfig"() =>...), что показано в сообщении выше.Если я изменю это значение на describe("RuleXXXConfig"() =>...), то получу ошибку, ссылающуюся на правильный файл:

  49 passing (130ms)
  1 failing

  1) RuleXXXConfig
       should load with valid data:
     Error: Config validation, cannot find timeOfDayConfig:hour and no default value supplied
      at getValue (src\config-validation.ts:52:15)
      at Function.getNumber (src\config-validation.ts:13:16)
      at new TimeOfDay (src\configuration\time-of-day.ts:32:53)
      at new RuleConfig (src\configuration\rule-config.ts:38:28)
      at Context.it (test\configuration\rule\rule-config-spec.ts:12:29)

Если я верну обратно значение describe("RuleConfig"() =>...), то получу старое сообщение, которое снова ссылается на несуществующий тестовый файл:

  49 passing (102ms)
  1 failing

  1) RuleConfig
       should load with valid data:
     Error: Config validation, cannot find timeOfDayConfig:hour and no default value supplied
      at getValue (src\config-validation.ts:52:15)
      at Function.getNumber (src\config-validation.ts:13:16)
      at new TimeOfDay (src\configuration\time-of-day.ts:32:53)
      at new RuleConfig (src\configuration\rule-config.ts:38:28)
      at Context.it (test\configuration\rule\basic-heating-rule-spec.ts:12:29)

Сейчас я в полном восторге: кто-нибудь знает, что здесь происходит WTF?

1 Ответ

0 голосов
/ 21 февраля 2019

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

...