当前位置: 首页 > 知识库问答 >
问题:

Angular 2 karma设置问题-karma启动但不运行测试

徐星阑
2023-03-14

简而言之,

>

  • 我正在创建一个项目,从Angular 2“Routing”示例的Plunker代码开始(通过Angular 2 Advanced Tutorial for Routing链接访问)。那个源头没有业力或茉莉花的配置。

    14 01 2017 19:16:44.080:WARN [karma]: No captured browser, open http://localhost:9876/
    14 01 2017 19:16:44.112:INFO [karma]: Karma v1.4.0 server started at http://0.0.0.0:9876/
    14 01 2017 19:16:44.112:INFO [launcher]: Launching browser Chrome with unlimited concurrency
    14 01 2017 19:16:44.268:INFO [launcher]: Starting browser Chrome
    14 01 2017 19:16:46.895:INFO [Chrome 55.0.2883 (Windows 10 0.0.0)]: Connected on socket [SNIP]
    
    describe('lst tests', () => {
        it('true is true', () => expect(false).toBe(true));
    });
    

    然后我运行npm测试,但发现我没有业力能力。从那以后,我根据程序员博客的建议,安装了各种软件包。我的安装变成了:

    npm install karma –save-dev
    npm install karma-jasmine jasmine-core –save-dev
    npm install karma-chrome-launcher –save-dev 
    npm install karma-cli
    npm install angular-mocks
    npm install requirejs karma-requirejs
    

    我运行了“Karma Init”并尽我所能地回答了问题。我当前的karma.conf.js是(缩写):

    module.exports = function(config) {
      config.set({
        basePath: '',
        frameworks: ['jasmine', 'requirejs'],
        files: [
          {pattern: 'app/*.js', included: false},
          {pattern: 'app/*.spec.js', included: false},
          {pattern: 'app/**/*.js', included: false}
        ],
        exclude: [ ],
        preprocessors: { },
        reporters: ['progress'],
        port: 9876,
        colors: true,
        logLevel: config.LOG_INFO,
        autoWatch: true,
        browsers: ['Chrome'],
        singleRun: false,
        concurrency: Infinity
      })
    }
    

    我的package.json是:

    {
      "name": "MyProgram",
      "version": "0.1.0",
      "license": "MIT",
      "description": "MyProgram description",
        "scripts": {
          "start": "gulp copy-jit && concurrently \"npm run tsc:w\" \"npm run lite\" ",
          "lite": "lite-server",
          "tsc": "tsc",
          "tsc:w": "tsc -w",
          "aot": "ngc -p tsconfig-aot.json",
          "rollup": "rollup -c rollup-config.js",
          "start-aot": "npm run aot && npm run rollup && gulp copy-aot && npm run lite",
          "test": "karma start karma.conf.js"
      },
      "dependencies": {
        "@angular/common": "~2.2.4",
        "@angular/compiler": "~2.2.4",
        "@angular/compiler-cli": "~2.2.4",
        "@angular/core": "~2.2.4",
        "@angular/forms": "~2.2.4",
        "@angular/http": "~2.2.4",
        "@angular/platform-browser": "~2.2.4",
        "@angular/platform-browser-dynamic": "~2.2.4",
        "@angular/platform-server": "^2.2.4",
        "@angular/router": "~3.2.4",
        "@angular/upgrade": "~2.2.4",
        "angular-in-memory-web-api": "~0.1.5",
        "core-js": "^2.4.1",
        "reflect-metadata": "^0.1.8",
        "rxjs": "5.0.0-beta.12",
        "systemjs": "0.19.39",
        "zone.js": "^0.6.25"
      },
      "devDependencies": {
        "@types/core-js": "^0.9.34",
        "@types/jasmine": "^2.5.35",
        "@types/node": "^6.0.45",
        "@types/selenium-webdriver": "^2.53.32",
        "concurrently": "^3.0.0",
        "del": "^2.2.2",
        "gulp": "^3.9.1",
        "gulp-gzip": "^1.4.0",
        "gulp-load-plugins": "^1.3.0",
        "gulp-rename": "^1.2.2",
        "gulp-task-listing": "^1.0.1",
        "gulp-util": "^3.0.7",
        "jasmine-core": "^2.5.2",
        "karma": "^1.4.0",
        "karma-chrome-launcher": "^2.0.0",
        "karma-jasmine": "^1.1.0",
        "karma-requirejs": "^1.1.0",
        "lite-server": "^2.2.2",
        "rollup": "^0.36.1",
        "rollup-plugin-commonjs": "^5.0.4",
        "rollup-plugin-node-resolve": "^2.0.0",
        "rollup-plugin-uglify": "^1.0.1",
        "typescript": "^2.0.3"
      }
    }
    
      null
  • 共有1个答案

    徐德海
    2023-03-14
    • 我也在试着走完这个过程。我知道,如果您使用Angular CLI进行ng new操作,它将为您创建一个项目,并正确设置所有的Karma内容。
    • NG测试与npm测试相似,但似乎旋转速度也快得多。
    • package.json“scripts”部分控制“test”命令行选项。
    • 我尝试将其复制到英雄之旅第6部分,并成功地执行了第1个spec.ts并使Karma启动并将true=true转换为true=false。
    • 但在这一点上,它说你可以在Chrome中加载1s.spec.ts,这对我来说也行不通(这里的第5点)。
    • 我在这里记录了复制文件的方法。
    • 您还有一个额外的麻烦,即Karma使用的Node版本落后于使用LTS发布周期的时代。所以设置NVM是明智的。请参阅此处
     类似资料:
    • 通过导出一个接受Karma将要使用的配置对象的函数,可以将配置文件放在一起。 修改此对象的某些属性将告诉Karma我们想要做什么。 让我们来看一下在这个配置文件中使用的一些关键属性: 'jasmine', ], frameworks是我们要使用的测试框架的列表。这些框架必须通过NPM作为依赖项安装在我们的项目中,或/和作为Karma插件。 插件 plugins: [ 'karma-jasm

    • 在我的组件中使用templateUrl时,我在运行带有Karma的Angular 2测试时遇到一些问题。 这是我的karma配置文件: 下面是一个示例模块: 和我的测试规范文件: 我遇到的问题是,在运行构建系统(使用gulp)之后,所有传输的文件和css都被移动到项目根目录下的另一个文件夹:/dist/dev/所有文件都被移动到这里。 移动文件后的示例结构: 这是我得到的警告和错误: 和 文件

    • 我在上安装了。它工作得很好,但自从我重新启动我的系统,我遇到了一个问题。 问题是没有启动,但像往常一样运行。当我时,它表示Apache正在运行。 我尝试在的中更改端口,但MySQL仍然无法启动。 以下是我尝试启动时的最新日志

    • 这最好用一段视频来解释(或者看下面的gif): 你会注意到Karma progress记者报告说测试只需几毫秒,但显然要花很长时间... 我在推特上说了这件事,然后被告知 所以,我的问题是,为什么它报告说它跑得超快,但实际上不是跑得超快,我怎样才能让它跑得快?

    • 我正在使用jasmine的karma,并按照在线指南安装了 和其他必需品 我跑了 和 它打开了一个外部铬浏览器,显示因果报应是相关的。我为一个函数写了一个简单的单元测试,它似乎没有运行任何测试 这是我的karma配置文件。 我的单元测试 我要测试的控制器中的特定功能 当我运行因果报应时,控制台上显示的是什么 附加信息:我正在使用AngularJS和RubyonRails。我知道有茉莉宝石可以帮助我

    • Tomcat环境变量配置正确、端口没有被占用,文件也没有错误,还是无法解决,实在是不知道怎么办还有什么原因导致双击statup.bat后一闪而过,会退出,从而导致无法去访问网页?