使用Karma对Gulp文件进行单元测试;茉莉花

Issue a unit test on a Gulp file using Karma & Jasmine

本文关键字:单元测试 茉莉花 文件 Karma Gulp 使用      更新时间:2023-09-26

我为一个Gulp文件写了一个单元测试。测试使用Jasmine Framework (safari/chrome)运行karma。知道了Karma在浏览器中运行json配置文件中指定的测试文件后,它应该有办法在浏览器中运行Node的模块。经过研究,我发现通过使用Browserify,我将能够在浏览器中要求模块。

当我写这个命令

browserify ./Test/GulpTest.js -o ./Test/Test.js -d

新的TEST.js似乎很大

,然后运行以下命令在新的test .js

上启动测试

karma .conf.js

我得到这个错误:

gulp输入流应该从ts编译为js TypeError:不能读取未定义的属性'isTTY在对象。(演示/用户/快速/桌面/应用程序/测试/. js: 75226:20)在Object.252。_process (/Users/Snap/Desktop/Demo App/Test/Test .js:75284:4)at s (/Users/Snap/Desktop/Demo App/Test/Test .js:1:254)at/Users/Snap/Desktop/Demo App/Test/Test .js:1:30 05在Object.31 . ./lib/pluginerror (/Users/Snap/Desktop/Demo App/Test/Test .js:3530:9)在Object.239 . ./lib/pluginerror (/Users/Snap/Desktop/Demo App/Test/Test .js:75113:21)at s (/Users/Snap/Desktop/Demo App/Test/Test .js:1:254)at/Users/Snap/Desktop/Demo App/Test/Test .js:1:30 05at Object.229.deprecated (/Users/Snap/Desktop/Demo App/Test/Test .js:74824:13)at s (/Users/Snap/Desktop/Demo App/Test/Test .js:1:254)

Chrome 44.0.2403 (Mac OS X 10.10.4): Executed 1 of 1 (1 FAILED) ERROR .日志含义(0.037秒/0.03秒)

    it("should compile from ts to js", function () {
            var gulp = require("gulp");
            var ts = require("gulp-typescript");
            var lazy = require("gulp-load-plugins");
            var fs = require('graceful-fs');
            var should = require('should');
            var join = require('path').join;

            /*
            * * * Compile Typescript to JavaScript 
            */
            gulp.task("ts-compiler", function () {
                return gulp.src("./Test/lib/file.ts")
                           .pipe(lazy.typescript({
                                // Generates corresponding .map file. 
                                sourceMap : false,
                                // Generates corresponding .d.ts file. 
                                declaration : true,
                                // Do not emit comments to output. 
                                removeComments : false,
                                // Warn on expressions and declarations with an implied 'any' type. 
                                noImplicitAny : false,
                                // Skip resolution and preprocessing. 
                                noResolve : false,
                                // Specify module code generation: 'commonjs' or 'amd'   
                                module : "amd",
                                // Specify ECMAScript target version: 'ES3' (default), or 'ES5' 
                                target : "ES5"
                            }))
                            .pipe(gulp.dest("./Test/lib/dest"));
            });
            gulp.start("ts-compiler", function () {
                console.log("compiling...");
                should.exist("./Test/lib/dest/file.js");
            });
});

你不能在karma和jasmine中运行Gulp——你把它当作一个前端库来运行,而它不是。

您需要使用后端测试库。你仍然可以使用jasmine,你只需要通过nodejs使用它,gulp就是这样运行的:https://www.npmjs.com/package/jasmine

您可能有兴趣了解我是如何为我工作的gulp任务编写单元测试的:https://github.com/Lostmyname/lmn-gulp-tasks/tree/master/test