如何在Angular 7中运行不同的测试配置

时间:2019-09-09 19:35:40

标签: angular karma-jasmine

默认情况下,我们将.spec.ts作为测试文件。

我们已经进行了以下配置。

"test": {
      "builder": "@angular-devkit/build-angular:karma",
      "options": {
        "main": "src/test.ts",
        "polyfills": "src/polyfills.ts",
        "tsConfig": "src/tsconfig.spec.json",
        "karmaConfig": "src/karma.conf.js",
        "styles": [
          "src/styles.scss"
        ],
        "scripts": ["node_modules/hammerjs/hammer.min.js"],
        "assets": [
          "src/favicon.ico",
          "src/assets"
        ],
        "codeCoverage": true
      }
    }

但是如果我有两组测试文件,请说 spec.ts和spec1.ts。

我可以运行ng test命令来运行所有.spec文件,而运行另一个命令来运行所有* .spec1文件。

angular.json应该有什么变化

1 个答案:

答案 0 :(得分:2)

我有一些可能对您有用的东西。

首先,我创建了 tsconfig.spec.json 文件的副本,并将其命名为 tsconfig.spec1.json ,我想您可以根据自己的喜好命名。这是文件的内容:

{
    "extends": "../tsconfig.json",
    "compilerOptions": {
        "outDir": "../out-tsc/spec",
        "types": [
        "jasmine",
        "node"
        ]
    },
    "files": [
        "test.ts",
        "polyfills.ts"
    ],
    "include": [
        "**/*.spec1.ts",
        "**/*.d.ts"
    ]
}

请注意文件**/*.spec1.ts部分中的includes范围。

然后,在命令提示符下,运行以下命令:

ng t --include=**/*.spec1.ts --tsConfig=./src/tsconfig.spec1.json

我通过复制其他一些spec文件创建了几个 spec1.ts 文件,并将其重命名。上面的命令仅在这些文件中运行测试。似乎可以工作。

试一试。真的没有太多的工作。

您可以将以下内容添加到 package.json scripts部分:

"test1": "ng t --include=**/*.spec1.ts --tsConfig=./src/tsconfig.spec1.json",

然后运行npm run test1以仅运行 spec1 测试。

我试图在没有--include=./**/*.spec1.ts的情况下运行上面的命令,因为它在我创建的新 tsconfig 文件中,但并不喜欢。

我还尝试创建 test.ts 的副本,并将files更改为包含test1.ts,然后运行ng t --tsConfig=./src/tsconfig.spec1.json,不行。 / p>