使用小袋鼠测试时出现意外的保留字错误

时间:2016-01-28 13:29:12

标签: typescript wallaby.js

在我编写测试用例的测试文件中,我导入了一个打字稿文件,如下所示:

import {rootReducer} from "../src/reducers/rootReducer";

在rootReducer.ts中,我导入了另一个打字稿文件,如下所示:

import taskReducer from "./taskReducer.ts";

然后它显示错误:

SyntaxError: Unexpected reserved word
at src/reducers/rootReducer.ts:7

rootReducer.ts和taskReducer.ts都位于文件夹/ src / reducers

如果从import语句中删除'.ts',但在浏览器中抛出错误,则没有失败的测试。该应用程序将无法运行

小袋鼠配置如下:

module.exports = function (wallaby) {

    return {
        files: [
            'src/*.ts',
            'src/**/*.ts'
        ],

        tests: [
            'test/*Test.ts'
        ],

        testFramework: "mocha",

        env: {
            type: 'node'
        },

        compilers: {
            '**/*.ts': wallaby.compilers.typeScript({
                /* 1 for CommonJs*/
                module: 1
            })
        }
    }
};

2 个答案:

答案 0 :(得分:2)

您的陈述:

import taskReducer from "./taskReducer.ts";

应该是:

// Import just taskReducer from this module
import {taskReducer} from "./taskReducer";

或者:

// Import the whole module and call it taskReducer
import * as taskReducer from "./taskReducer";

答案 1 :(得分:2)

问题不在wallaby.js中,而是在你的webpack配置中。要在不指定扩展名的情况下启用需要文件,必须添加resolve.extensions参数,指定webpack搜索的文件:

// webpack.config.js
module.exports = {
  ...
  resolve: {
    // you can now require('file') instead of require('file.ts')
    extensions: ['', '.js', '.ts', '.tsx'] 
  }
};