9

grunt と jasmine を使用していくつかのテストをセットアップしましたが、ターミナルでテストを実行しようとすると問題が発生します。次のエラーが表示されます。

>> Error caught from phantom. More info can be found by opening the Spec Runner in a browser.

ブラウザーでスペック ランナー ファイルを実行すると、すべてのテストがパスし、エラーは表示されません。

この問題の原因を知っている人はいますか?

これが私のGruntfileです:

module.exports = function(grunt) {

  grunt.initConfig({

pkg: grunt.file.readJSON('package.json'),

/**
 * Uglify task to minify all javscript files
 * seperating out all script files into a development directory
 * and then having all 'production' scripts within a product directory
 *
 * Note: Will need a bit of work to target the plugins folder
 *       independently to the main apps - as we may have unminified
 *       versions - aswell as our Backbone views.
 */
uglify: {
  options: {
    mangle: false
  },
  files: { 
      src: 'assets/scripts/development/*.js',  // source files mask
      dest: 'assets/scripts/production/',    // destination folder
      expand: true,    // allow dynamic building
      flatten: true,   // remove all unnecessary nesting
      ext: '.min.js'   // replace .js to .min.js
  }
},

/**
 * Sass module compiles all SASS files
 * This quickly avoids having to open and save
 * every single css file if a conflict is present
 */
sass: {
  dist: {
    files: [{
      expand: true,
      cwd: 'assets/styles/sass/',
      src: ['*.scss'],
      dest: 'assets/styles/',
      ext: '.css'
    }]
  }
},

/**
 * Image minification for compressing images
 * accross the project and moving them into their own folder
 * all references once production has gone through points to those
 */
imagemin: {
    png: {
        options: {
            optimizationLevel: 7
        },
        files: [
            {
                expand: true,
                cwd: 'assets/images/',
                src: ['**/*.png'],
                dest: 'assets/images/compressed/',
                ext: '.png'
            }
        ]
    },
    jpg: {
        options: {
            progressive: true
        },
        files: [
            {
                expand: true,
                cwd: 'assets/images/',
                src: ['**/*.jpg'],
                dest: 'assets/images/compressed/',
                ext: '.jpg'
            }
        ]
    }
},

/**
 * PHP Code Standards fixer
 * Runs through the app (main code base for each project)
 * to ensure conforms to a standard
 */
phpcsfixer: {
    app: {
        dir: 'app'
    },
    options: {
        bin: 'php-cs-fixer',
        ignoreExitCode: true,
        level: 'all',
        quiet: false,
        diff: true,
        verbose: true
    }
},

jasmine : {
  src : 'assets/scripts/views/*.js',
  options : {
    specs : 'assets/scripts/tests/*.js'
      }
    }
  });

  grunt.loadNpmTasks('grunt-contrib-jasmine');
  grunt.loadNpmTasks('grunt-php-cs-fixer');
  grunt.loadNpmTasks('grunt-contrib-imagemin');
  grunt.loadNpmTasks('grunt-contrib-sass');
  // Load the plugin that provides the "uglify" task.
  grunt.loadNpmTasks('grunt-contrib-uglify');

  // Default task(s).
  grunt.registerTask('default', [ 'uglify', 'sass' ] );

  //Jasmine unit tests
  grunt.registerTask('test', [ 'jasmine' ] );

};

助けてくれてありがとう。

4

2 に答える 2

0

私にとっては、修正されたコンソール テストに正しい hostオプションを追加することですGruntfile.js(ブラウザー テストは既に機能していました)。

jasmine: {
    test: {
       src: ['src/<%= pkg.name %>.js'],
           options: {
               specs: ['spec/*-spec.js'],
               outfile: 'spec.html',
               keepRunner: true,
               host: 'http://example.com/folder-containing-to-spec-file/',
               vendor: ['vendor/file.js']
           }
       }
    }
}

オプションがないと、hostPhantomjs がfile:///users/path/to/local/files(明らかに) ブラウザーがコンテンツを要求できるサーバーではないコンテンツを要求しているように見えました (ローカルで作業している場合)。

于 2015-07-30T14:49:17.757 に答える