0

状況: 現在、QUnit を使用して TypeScript/Javascript でプロジェクトをテストしていますが、ブラウザーで実行するとすべて正常に動作します。

問題: grunt を使用して QUnit テストをヘッドレス モードで実行しようとしています (継続的な統合テストに必要です) が、テストが正しく実行されません。

構成 現在の設定方法は次のとおりです。

Gruntfile.js
package.json
src/
  - Ts source files
test/
  - config.js
  - Test.ts
  - Test.js
  - test.html

Gruntfile.js

/*global module:false*/
module.exports = function(grunt) {

    grunt.initConfig({
        connect: {
            server: {
                options: {
                    port: 8000,
                    base: '.'
                }
            }
        },

        qunit: {
            all: {
                options: {
                    urls: [
                        'http://localhost:8000/test/test.html'
                    ]
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-qunit');
    grunt.loadNpmTasks('grunt-contrib-connect');

    grunt.registerTask('test', ['connect', 'qunit']);

};

パッケージ.json

{
  // Name, version, description, repo and author fields...
  "engines": {
    "node": ">= 0.10.0"
  },
  "devDependencies": {
    "grunt": "~0.4.5",
    "grunt-contrib-watch": "~0.6.1",
    "grunt-contrib-connect": "~0.9.0",
    "grunt-contrib-qunit": "~0.5.2"
  }
}

そして、これらすべてを実行するための.travis.ymlファイルがあります。テストはtravisでも私のローカル環境でも実行されないため、それが本当に重要かどうかはわかりませんが、とにかくここにあります:

language: node_js
node_js:
 - "0.11"
 - "0.10"
before_install:
 - "npm install grunt --save-dev"
 - "npm install -g grunt-cli"
install:
 - "npm install"
 - "npm install -g typescript"
script:
 - "tsc --module amd --target ES5 ./src/*.ts"
 - "grunt test --verbose --force"

そして、これが travis ビルドでエラーになる部分です: http://puu.sh/eKpWj/35614680e1.png

(現在、ブラウザーで実行しているときに渡すアサーションが最大 20 あります。また、typescript のコンパイルは正常に実行されます。)

編集:そして、誰かがそれを求めたので、Test.htmlファイルの内容は次のとおりです:http://pastebin.com/LN3igmjc

編集 2: config.jsの内容も次のとおりです。

var require = {
    baseUrl: "../src/"
};
4

1 に答える 1

0

実際、私はそれを機能させることができました。私は2つのことを変更しました:

  1. tsc --module amd --target ES5 ./src/*.tsフォルダー内のファイルをコンパイルしたため、テストをコンパイルしていませんでした。srcテストファイルはtestフォルダー内にありました。私はこれのために自分自身を打ちのめしています... だから私は単にファイルに追加tsc --module amd --target ES5 ./test/*.tsしました.travis.yml
  2. 最大の問題は、require.js の作業の前に QUnit テストを開始しようとしていたことです。私が使用した解決策は、QUnit を使用してテストを自動的に開始しないように指示しQUnit.config.autostart = false;、ファイルQUnit.start();の最後にこの start() を配置して、QUnit の読み込みが完了したときにのみテストが開始されるようにすることでした。Test.js
于 2015-01-21T15:45:15.697 に答える