angular - 尝试运行 ng 测试时收到 `ERROR in multi styles.css`

标签 angular karma-runner ionic4

将 Angular 升级到 7.2.6 后,我可以使用 ng build 成功构建,但是当我运行 ng test 时,出现以下错误。我已经尝试在我的 angular.json 文件中调整到 styles.css 的路径,但仍然收到相同的错误。我对正在发生的事情不知所措。我也在使用 Ionic 4。

ERROR in multi ./styles.css
Module not found: Error: Can't resolve '/Users/zsoflin/Documents/GitHub/Layer/styles.css' in '/Users/zsoflin/Documents/GitHub/Layer'
resolve '/Users/zsoflin/Documents/GitHub/Layer/styles.css' in '/Users/zsoflin/Documents/GitHub/Layer'
  using description file: /Users/zsoflin/Documents/GitHub/Layer/package.json (relative path: .)
    Field 'browser' doesn't contain a valid alias configuration
    using description file: /Users/zsoflin/Documents/GitHub/Layer/package.json (relative path: ./styles.css)
      no extension
        Field 'browser' doesn't contain a valid alias configuration
        /Users/zsoflin/Documents/GitHub/Layer/styles.css doesn't exist
      .ts
        Field 'browser' doesn't contain a valid alias configuration
        /Users/zsoflin/Documents/GitHub/Layer/styles.css.ts doesn't exist
      .tsx
        Field 'browser' doesn't contain a valid alias configuration
        /Users/zsoflin/Documents/GitHub/Layer/styles.css.tsx doesn't exist
      .mjs
        Field 'browser' doesn't contain a valid alias configuration
        /Users/zsoflin/Documents/GitHub/Layer/styles.css.mjs doesn't exist
      .js
        Field 'browser' doesn't contain a valid alias configuration
        /Users/zsoflin/Documents/GitHub/Layer/styles.css.js doesn't exist
      as directory
        /Users/zsoflin/Documents/GitHub/Layer/styles.css doesn't exist
[/Users/zsoflin/Documents/GitHub/Layer/styles.css]
[/Users/zsoflin/Documents/GitHub/Layer/styles.css.ts]
[/Users/zsoflin/Documents/GitHub/Layer/styles.css.tsx]
[/Users/zsoflin/Documents/GitHub/Layer/styles.css.mjs]
[/Users/zsoflin/Documents/GitHub/Layer/styles.css.js]
 @ multi ./styles.css styles[0]

我的 package.json 依赖项:

"dependencies": {
    "@angular/animations": "^7.2.6",
    "@angular/cdk": "^7.3.3",
    "@angular/common": "^7.2.6",
    "@angular/core": "^7.2.6",
    "@angular/fire": "^5.1.1",
    "@angular/forms": "^7.2.6",
    "@angular/http": "^7.2.6",
    "@angular/material": "^7.3.3",
    "@angular/platform-browser": "^7.2.6",
    "@angular/platform-browser-dynamic": "^7.2.6",
    "@angular/pwa": "^0.13.1",
    "@angular/router": "^7.2.6",
    "@angular/service-worker": "^7.2.6",
    "@capacitor/android": "^1.0.0-beta.17",
    "@capacitor/cli": "^1.0.0-beta.17",
    "@capacitor/core": "^1.0.0-beta.17",
    "@capacitor/ios": "^1.0.0-beta.17",
    "@firebase/app-types": "^0.3.4",
    "@firebase/messaging": "0.3.4",
    "@ionic-native/core": "^5.0.0-beta.22",
    "@ionic-native/firebase": "^5.2.0",
    "@ionic-native/splash-screen": "^5.2.0",
    "@ionic-native/status-bar": "^5.2.0",
    "@ionic/angular": "^4.0.2",
    "@ionic/ng-toolkit": "1.1.0",
    "@ionic/pro": "^2.0.4",
    "@ionic/schematics-angular": "^1.0.7",
    "@types/stripe": "^5.0.25",
    "angular2-text-mask": "^9.0.0",
    "angular2-uuid": "^1.1.1",
    "angularfire2": "^5.1.1",
    "core-js": "^2.5.3",
    "firebase": "^5.8.4",
    "firebaseui": "^3.5.2",
    "hammerjs": "^2.0.8",
    "ionicons": "^4.5.5",
    "ng-animate": "^0.3.4",
    "ng-pipes": "^0.1.2",
    "ng-stripe-checkout": "^1.0.4",
    "ngx-color": "^2.0.5",
    "ngx-device-detector": "^1.3.5",
    "ngx-papaparse": "^3.0.0",
    "ngx-stripe": "^6.0.0-rc.0",
    "node-sass": "^4.10.0",
    "rxjs": "6.4.0",
    "zone.js": "^0.8.29"
  },
  "devDependencies": {
    "@angular-devkit/architect": "^0.7.5",
    "@angular-devkit/build-angular": "^0.13.3",
    "@angular-devkit/core": "^0.7.5",
    "@angular-devkit/schematics": "^0.7.5",
    "@angular/cli": "^7.3.3",
    "@angular/compiler": "^7.2.6",
    "@angular/compiler-cli": "^7.2.6",
    "@angular/language-service": "^7.2.6",
    "@types/jasmine": "~2.8.6",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^10.5.8",
    "codelyzer": "^4.4.4",
    "css-loader": "^2.1.0",
    "firebase-tools": "^6.4.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^3.1.4",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^2.0.4",
    "karma-jasmine": "^2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "modules": "^0.4.0",
    "protractor": "^5.4.1",
    "style-loader": "^0.23.1",
    "ts-node": "^7.0.1",
    "tslint": "~5.11.0",
    "typescript": "^3.2.4"
  }

angular.json 文件中的测试配置:

"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": [
              "styles.css"
            ],
            "scripts": [],
            "assets": [
              {
                "glob": "favicon.ico",
                "input": "src/",
                "output": "/"
              },
              {
                "glob": "**/*",
                "input": "src/assets",
                "output": "/assets"
              },
              "src/main-sw.js",
              "src/firebase-messaging-sw.js",
              "src/manifest.webmanifest"
            ]
          }
        },

最佳答案

看起来是在尝试从 architect > build > options > styles (angular.json) 获取样式。 只需将样式复制到 architect > test> options > styles 并再次运行测试。 它对我有用!

为了澄清,请确保在您的 angular.json 文件中,您的测试部分中的样式部分与您的构建部分相匹配(或者至少是有效的) 例如 angular.json:

enter image description here

关于angular - 尝试运行 ng 测试时收到 `ERROR in multi styles.css`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54832433/

相关文章:

javascript - karma : Move Folder -> Missing Error Handler on Socket?

javascript - Karma Jasmine AngularJs 定义未定义

css - 如何在 Angular 2 中更改应用程序范围的 css?

javascript - 如何防止在 Angular/Ionic2 中单击父级?

node.js - 为 Nodejs 应用程序编写插件的教程?

angular - Ionic 4 中出现 "No provider for NgControl"错误

angular - 从 Ionic-native VideoEditor 插件获取 "Uncaught (in promise): TypeError: Object(...) is not a function"错误

angular - 在页面之间导航时未调用 ngAfterViewInit

angular - 错误 HTTP 500.19 - 在 IIS 中部署 Angular 应用程序时出现内部服务器错误

Angular2 如何获取动态生成的 HTML 元素的引用