首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元测试角+ Browserify + Gulp和Jasmine

单元测试角+ Browserify + Gulp和Jasmine
EN

Stack Overflow用户
提问于 2014-10-22 04:55:22
回答 1查看 2.2K关注 0票数 4

我有一个角度的项目捆绑了使用Gulp的浏览器化。这是树

代码语言:javascript
复制
|--app
  |--src
    --js
      -main.js
      -otherFiles.js
  |--spec
    --mainspec.js <-- jasmin spec file
|--public
   --js
     --main.js

我有一个gulp文件,它使用我的源代码,main.js文件,并与一个gulp-jasmine任务一起浏览它

代码语言:javascript
复制
gulp.task('js', function() {
   return gulp.src('src/js/main.js')
    .pipe(browserify({}))
    .pipe(gulp.dest('public/js'));
});

gulp.task('specs', function () {
return gulp.src('spec/*.js')
    .pipe(jasmine());
});

还有一些监视任务等。

现在,在我的mainspec.js文件中,考虑到我的测试代码,无法识别角:

代码语言:javascript
复制
describe("An Angular App", function() {
   it("should actually have angular defined", function() {
     expect(angular).toBeDefined();
  });
});

我在终端上得到了一个ReferenceError: angular is not defined错误。我尝试在第一行require('angular');,但没有运气,得到了一个新的错误ReferenceError: window is not defined。我知道设置和测试文件有问题,无法到达浏览器序列化的文件,但我不能仅仅找出解决方案。

有什么想法吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-22 05:30:36

您需要定义配置文件中的所有方面。

代码语言:javascript
复制
function getKarmaConfig(environment) {
    return {
        frameworks   : ['jasmine'],
        files        : [
            // Angular + translate specified for build order
                    environment + '/js/jquery.min.js',
                    environment + '/js/angular.js',
                    environment + '/js/angular-translate.min.js',
                    environment + '/js/**/*.js',
            'bower_components/angular-mocks/angular-mocks.js',
            'test/unit/**/*.js'
        ],
        exclude      : [
        ],
        browsers     : ['PhantomJS'],
        reporters    : ['dots', 'junit','coverage'],
        junitReporter: {
            outputFile: 'test-results.xml'
        },
        preprocessors : {
              'prod/js/*.js': ['coverage']
        },
        coverageReporter:{
              type: 'html',
              dir: 'coverage'
        }
    };
};

定义一个像这样的吞咽测试任务

代码语言:javascript
复制
gulp.task('test', ['build_prod'], function () {
    var testKarma = getKarmaConfig(environment);
    testKarma.action = 'run';
    testKarma.browsers = ['PhantomJS'];
    return gulp.src('./fake')
            .pipe(karma(testKarma));
});

您只需要按照您的结构完美地定义src。这将起作用:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26500550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档