Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Angular 7中运行不同的测试配置_Angular_Karma Jasmine - Fatal编程技术网

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

如何在Angular 7中运行不同的测试配置,angular,karma-jasmine,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", "kar

默认情况下,我们将.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测试以运行所有.spec文件,并运行另一个命令以运行所有*.spec1文件吗


我应该在angular.json中做些什么更改我得到了一些对您有用的东西

首先,我创建了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
glob

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

ng t --include=**/*.spec1.ts --tsConfig=./src/tsconfig.spec1.json
我复制了一些其他的spec文件,创建了几个spec1.ts文件,并重命名了它们。上面的命令仅在这些文件中运行测试。似乎有效

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

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

然后运行
npm runtest1
,只运行spec1测试

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


我还尝试创建test.ts的副本,并将
文件更改为包含
test1.ts
,然后运行
ng t--tsConfig=./src/tsConfig.spec1.json
,没有问题。

我找到了一些可能适合您的工作方法

首先,我创建了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
glob

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

ng t --include=**/*.spec1.ts --tsConfig=./src/tsconfig.spec1.json
我复制了一些其他的spec文件,创建了几个spec1.ts文件,并重命名了它们。上面的命令仅在这些文件中运行测试。似乎有效

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

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

然后运行
npm runtest1
,只运行spec1测试

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


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

谢谢您,对于重命名的文件,我遇到了这个错误,
找不到名称“it”。是否需要为测试运行程序安装类型定义?试试'npm i@types/jest'或'npm i@types/mocha
您是否使用jest进行测试?这个答案是基于使用业力和茉莉花;开箱即用的Angular CLI测试设置。我还必须重命名配置文件。感谢现在工作谢谢,对于重命名的文件,我得到了这个错误,
找不到名称“it”。是否需要为测试运行程序安装类型定义?试试'npm i@types/jest'或'npm i@types/mocha
您是否使用jest进行测试?这个答案是基于使用业力和茉莉花;开箱即用的Angular CLI测试设置。我还必须重命名配置文件。谢谢你现在工作