我正在尝试使用使用peg解析器的jasmine对一些Javascript代码进行单元测试。 peg解析器是在构建时构建的。
不幸的是,我还没有找到如何告诉jasmine动态构建的解析器的位置。
到目前为止,我已经:
gulp.task('parser', () => {
return gulp.src("src/parser.peg")
.pipe(peg())
.pipe(gulp.dest(".obj"))
});
gulp.task('test', ["parser"], () => {
return gulp.src(["tests/**/*.js", "src/**/*.js", ".obj/parser.js"])
.pipe(jasmine())
});
现在,在测试运行时,解析器已正确构建并放入.obj
;但它不在模块路径上,因此测试加载实际代码,实际代码尝试import parser from "parser"
,测试失败。
我可以更改实际代码以导入../obj/parser
而不是parser
,但这当然会在生产中失败。我需要以某种方式告诉jasmine在.obj
中找到模块。怎么样?