2016-10-06 1 views
0

を構築するようなものgulpfile:Webコンポーネントテスター - ゴクゴクタスクごとにテストを実行するためには、私は内側に入れたい

require('web-component-tester').gulp.init(gulp); 
gulp.task('default', function() { 
    gulp.watch(['elements/**', 'test/**'], ['test:local']); 
}); 

目的は、(ポリマー成分との)テストフォルダーまたは要素フォルダを監視することですが。それらの一部が変更される場合は、各ビルドでテストを実行します。

私wct.conf.js:

module.exports = { 
    root: '.tmp/elements/', 
    suites:  ['**/test/'], 
    plugins: { 
    local: {browsers: ['chrome']}, 
    } 
}; 

は、私はいくつかのページに上記のコードを見つけましたが、私は私の端末でgulpをいくつかのテストを追加して入力した後の.tmpフォルダが更新されないので、私は、エラーを検出しましたPolymer is not definedまたはajax.generateRequestのような奇妙なエラーは機能ではありません。意図的にテストで間違いを犯したときに正しいエラーが出るので、何かが問題ないように見えるが、まったくそうではないようだ。

多くのファイルを持つ既存のプロジェクトにテストを追加します。私が空のプロジェクトで同じことをしようとしたときに、入力するまで同じエラーが発生しましたbower install

これがバワー依存関係の問題である可能性はありますか? 何が間違っているかご存じですか?これはgulpfileのコードの一部で、目的の効果を実行するのに適していますか?

ありがとうございます。

答えて

0

私はあなたの質問に直接答えていません。私はそれをしてからしばらくしています。しかし、以下では、 'クライアント'というタスクを定義してフレームバッファ内でテストを実行するサブタスクを定義しています(テストが実行されたときに妨害ウィンドウが表示されることはありません。コンソールウィンドウに出力。そのが効果的にWCTのコマンドラインバージョンを産卵し、私は全くwct.confファイルを持っていません。

(function() { 
    'use strict'; 

    const spawn = require('child_process').spawn; 

    module.exports = function(gulp) { 
    gulp.task('test:client',['lint:client'],() => { 
     var child = spawn('xvfb-run', ['-a', 'wct', '--color'], {cwd: process.cwd()}); 

     child.stdout.setEncoding('utf8'); 

     child.stdout.on('data', function(data) { 
     process.stdout.write(data); 
     }); 

     child.stderr.setEncoding('utf8'); 
     child.stderr.on('data', function(data) { 
     process.stderr.write(data); 
     }); 
    }); 

    gulp.task('client',function() { 
     gulp.watch([ 
     'app/index.html', 
     'app/src/*.html', 
     'app/test/*.html', 
     'aoo/mocks/*.html', 
     'gulpfile.js', 
     'tasks/*.js' 
     ],['test:client']); 
    }); 

    }; 
})(); 

このファイルには、タスクのディレクトリ内のファイルである(これはあなたのように私は)

マイgulpfileロードこの、およびそのような他の作業を見ています見ることができます(私は角度の支援がタスクの一部をロードするためにそれを使用しangular.jsチームからこれをコピーした)

(function() { 
    'use strict'; 

    require('dotenv').config(); //load our environment 

    var gulp = require('gulp'); 

    var includeAll = require('include-all'); 

    /** 
    * Loads task modules from a relative path. 
    */ 
    function loadTasks(relPath) { 
    return includeAll({ 
     dirname: require('path').resolve(__dirname, relPath), 
     filter: /(.+)\.js$/ 
    }) || {}; 
    } 
    // * 
    // * Invokes the function from a Gulp configuration module with 
    // * a single argument - the `gulp` object. 

    function addTasks(tasks) { 
    for (var taskName in tasks) { 
     if (tasks.hasOwnProperty(taskName)) { 
     tasks[taskName](gulp); 
     } 
    } 
    } 
    /** 
    * Add all Gulp tasks to the gulpfile. 
    * Tasks are in `tasks/` 
    */ 
    addTasks(loadTasks('tasks/')); 

    // require('gulp-load-tasks')(__dirname + '/tasks'); 
    gulp.task('default', ['lint:gulp','client','server']); 

})(); 
関連する問題