首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行业力+茉莉花测试时的下划线错误

运行业力+茉莉花测试时的下划线错误
EN

Stack Overflow用户
提问于 2015-09-18 08:37:06
回答 1查看 1.1K关注 0票数 1

我是新来的前端代码测试的。在我的jasmine应用程序上运行业力+茉莉测试时,我有一个奇怪的错误。我认为这可能是因为在定义Marionette视图时还没有加载下划线模板。

我的karma.conf.js:

代码语言:javascript
复制
'use strict';

module.exports = function (config) {
    config.set({
        basePath: '',
        frameworks: ['browserify', 'jasmine-ajax', 'jasmine-jquery', 'jasmine'],
        exclude: ["*.jst"],
        logLevel: 'LOG_DEBUG',
        reporters: ['progress'],
        preprocessors: {
            'tests/unit/**/test_*.js': ['browserify']
        },
        colors: true,
        browsers: ['PhantomJS'],
        singleRun: true,
        autoWatch: false,
        plugins: [
            'karma-coverage',
            'karma-browserify',
            'karma-jasmine-ajax',
            'karma-jasmine-jquery',
            'karma-jasmine',
            'karma-junit-reporter',
            'karma-phantomjs-launcher'
        ],
        browserify: {
            debug: true,
            transform: [
                'browserify-jst',
                'browserify-shim',
                'browserify-istanbul'
            ]
        },
        files: [
            'http://code.jquery.com/jquery-1.11.2.min.js',
            'tests/unit/**/test_*.js'
        ]
    });
};

这只是我试图运行的一个虚拟测试:

代码语言:javascript
复制
'use strict';

var CompanyListView = require('../../company_list.js');

$(function () {
    describe("A page", function () {
        it("contains login form", function () {            
            expect(true).toBe(true);
        });
    });
});

在需要company_list.js文件时发生错误:

代码语言:javascript
复制
PhantomJS 1.9.8 (Linux 0.0.0) ERROR
  TypeError: 'undefined' is not a function (evaluating 'text.replace')
  at /tmp/082eb28c15575edda85ae0f9ce2019a6.browserify:17883:0 <- node_modules/underscore/underscore.js:1431:0

company_list.js:

代码语言:javascript
复制
var $ = require('jquery');
var _ = require('underscore');
var Backbone = require('backbone');
var Marionette = require('backbone.marionette');

var tplCompany = require('../templates/company_list.jst');

module.exports = Marionette.CompositeView.extend({
    template: _.template(tplCompany, {variable: 'data'}),
});

我做错什么了?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-18 10:36:01

解决方案是在karma.conf.js中实现的:

代码语言:javascript
复制
transform: [
      'browserify-jst',
      'browserify-shim',
      'browserify-istanbul'
]

必须:

代码语言:javascript
复制
transform: [
    ['stringify', {extensions: ['.html', '.jst'], minify: false}],
    'browserify-shim',
    'browserify-istanbul'
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32647501

复制
相关文章

相似问题

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