我想把gulpfile放在里面:
require('web-component-tester').gulp.init(gulp);
gulp.task('default', function() {
gulp.watch(['elements/**', 'test/**'], ['test:local']);
});
目的是观察测试文件夹或元素文件夹(使用Polymer组件)。如果其中一些会改变,请在每次构建时运行测试。
我的wct.conf.js:
module.exports = {
root: '.tmp/elements/',
suites: ['**/test/'],
plugins: {
local: {browsers: ['chrome']},
}
};
我在某些页面上找到了上面的代码,但是在我添加了一些测试然后在终端中输入gulp
后发现错误,因为.tmp文件夹没有更新,并且有Polymer is not defined
或{等奇怪的错误{1}}不是一个功能。当我故意在测试中犯错误时,我也得到了正确的错误,所以看起来好像没什么,但根本没有。
我将测试添加到包含大量文件的现有项目中。当我尝试在空项目上做同样的事情时,我也遇到了同样的错误,直到我输入ajax.generateRequest
。
这有可能是凉亭依赖的问题吗? 或者你知道出了什么问题吗? gulpfile中的这部分代码是否正确执行所需的效果?
非常感谢。
答案 0 :(得分:0)
我没有直接回答你的问题,因为我已经这样做了一段时间。但是下面定义了一个子任务来定义一个名为'client'的任务,然后在帧缓冲区中运行测试(所以当测试运行时我没有在整个地方弹出令人不安的窗口 - 它们只是运行并在控制台窗口中输出。它有效地生成了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']);
})();