3

プロジェクトは次のとおりです: バックボーン + 要求 + アンダースコア + Grunt + Grunt-Contrib-Jasmine + Grunt-Lib-PhantomJS

だから私が戦ってきた2つの深刻な問題。アプリのsrcファイルを含めると大量のランタイムエラーが発生するため、phantomjsが適切に実行されていることなどを知っています。_バックボーンが定義されていないなどの理由でbarfしないように、depを適切に注文しました.

1)アプリケーションの src をインクルードすると、can't find variable: defineすべてのソース ファイルでエラーが発生します。私は要件をsrc[]isntead に入れよvendor[]うとしましたが、deps を含む RequireJSConfig.js を読み込もうとさえしました。

2)ここに問題があります: 私は自分の仕様ファイルを適切に指していると確信しています。1 つの testを指すだけでも、No Specs Executed. Is there a configuration error?In my case, I just point at myUserModelUnitTest.jsと表示されます。これは非常に単純です。実行されません。私は絶対に気が狂います!

仕様 (UserModelUnitTest.js):

describe('User Model Unit Tests', function() {
var USER_MODEL,
    USER_CLASS,
    JSON_OBJ;
  beforeEach(function() {
    USER_CLASS = testr('models/user/User', {});
  });

  afterEach(function() {
    USER_MODEL = null;
    USER_CLASS = null;
    JSON_OBJ = null;
  });    
  describe('Given a json object', function() {
    it('should create a valid User', function() {
      JSON_OBJ = {"databaseId": 123456,"loginName": "god","firstName": "Jesus","lastName": "Christ","phone": "666-666-6666","email": "satan@hell.org","isoCountryCode": "US","languageCode": "en","roles" : ["SALES_REP"]};
      USER_MODEL = new USER_CLASS(JSON_OBJ, { parse: true });
      expect(USER_MODEL).not.toBe(null);
    });
    // etc...
  });
})

ここに私のディレクトリ構造があります

/project
 - src
     - main
     + test 
        + js
            +unit
                 UserModelUnitTest.js

ここに私のGruntfile / Jasmineの設定があります

 jasmine: {
          test:{
              vendor:[
                  'src/main/resources/js/lib-clean/jquery-2.1.0.js',
                  'src/main/resources/js/lib-clean/require-2.1.1.full.js',
                  'src/main/resources/js/lib-clean/underscore-1.5.2.min.js',
                  'src/main/resources/js/lib-clean/backbone-1.1.2.min.js'
              ],
              src : [
                  // these all error like crazy. Can't find variable 'define' etc.
                  // 'src/main/**/*.js',                         
                  // 'src/main/**/**/*.js',
                  //'src/test/RequireJSConfig.js'
              ],
              helpers : [
                  'src/test/js/helpers/dependencyHelper.js',
                  'src/test/js/helpers/errorHelper.js',
                  'src/test/js/helpers/requesetHelper.js',
                  'src/test/lib/testr.js',

                  // jasmine.js + jasmine-html.js etc
                  'src/test/lib/*.js',

                  // stubs
                  'src/test/js/stubs/*.js'
              ],
              specs : [
                  'src/test/js/unit/UserModelUnitTest.js'
              ],
              //specs : 'src/test/js/unit-headless.html',
              timeout : 10000,
              phantomjs : {
                  'ignore-ssl-errors' : true
              }
          }
      },

しかし、私はスペックを持っています!!!!

4

2 に答える 2

8

私はちょうど同じ問題を抱えていました。オプション内でvendor、、、specsを定義する必要があります。helpersoptions

jasmine: {
  src: 'path/to/src',
  options: {
    vendor: 'path/to/vendor',
    specs: 'path/to/specs',
    helpers: 'path/to/specs'
    // etc.
  }
}
于 2014-04-12T22:16:21.553 に答える
0

場合によっては、spec フォルダーと spec ファイルを作成していない、必要な spec ファイルを作成するときに内部でテストを作成する、または実行しないことが原因で発生することがあります。

于 2015-08-19T10:56:45.477 に答える