ionic-team / ionic-team/ionic-unit-testing-example

Error output is minified

未关闭
#94 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
TypeScript
星标
370
派生
144
PR 合并指标
30 天内没有已合并 PR

描述

As recommended in the readme I have follow [this tutorial](https://leifwells.github.io/2017/08/27/testing-in-ionic-configure-existing-projects-for-testing/) to integrate tests to my Ionic Project. It works but when I have an error the code showed is minified and of course it is hard to know what is wrong.

For example:

### Spec File
```
import { TestBed } from "@angular/core/testing";
import { StatisticsProvider } from "./statistics.service";

describe("StatisticsProvider", () => {
let service: StatisticsProvider;

beforeEach(() => {
TestBed.configureTestingModule({
providers: [StatisticsProvider]
});
service = TestBed.get(StatisticsProvider);
});

it("can load instance", () => {
expect(service).toBeTruthy();
});

});

```

### Output Error:

> Error: StaticInjectorError(e)[e -> e]:
StaticInjectorError(Platform: core)[e -> e]:
NullInjectorError: No provider for e!

```
error properties: Object({ ngTempTokenPath: null, ngTokenPath: [ 'e', Function ] })
Error: StaticInjectorError(e)[e -> e]:
StaticInjectorError(Platform: core)[e -> e]:
NullInjectorError: No provider for e!
at e.get (http://localhost:9876/base/test-config/karma-test-shim.js:45:135)
at http://localhost:9876/base/test-config/karma-test-shim.js:52:2430
at le (http://localhost:9876/base/test-config/karma-test-shim.js:52:2448)
at e.get (http://localhost:9876/base/test-config/karma-test-shim.js:52:1612)
at http://localhost:9876/base/test-config/karma-test-shim.js:52:2430
at le (http://localhost:9876/base/test-config/karma-test-shim.js:52:2448)
at e.get (http://localhost:9876/base/test-config/karma-test-shim.js:52:1612)
at oi (http://localhost:9876/base/test-config/karma-test-shim.js:298:681)
at http://localhost:9876/base/test-config/karma-test-shim.js:298:869
at si (http://localhost:9876/base/test-config/karma-test-shim.js:298:1053)
at oi (http://localhost:9876/base/test-config/karma-test-shim.js:298:639)
at e.get (http://localhost:9876/base/test-config/karma-test-shim.js:313:9035)
at e.get (http://localhost:9876/base/test-config/karma-test-shim.js:471:6725)
at Function.e.get (http://localhost:9876/base/test-config/karma-test-shim.js:471:2525)
at UserContext. (http://localhost:9876/base/test-config/karma-test-shim.js:702:99461)
at e.invoke (http://localhost:9876/base/test-config/karma-test-shim.js:514:7001)
at e.onInvoke (http://localhost:9876/base/test-config/karma-test-shim.js:618:2261)
at e.invoke (http://localhost:9876/base/test-config/karma-test-shim.js:514:6941)
at t.run (http://localhost:9876/base/test-config/karma-test-shim.js:514:2171)
at l (http://localhost:9876/base/test-config/karma-test-shim.js:656:1318)
at UserContext. (http://localhost:9876/base/test-config/karma-test-shim.js:656:1428)
at
at e.invokeTask (http://localhost:9876/base/test-config/karma-test-shim.js:514:7685)
at t.runTask (http://localhost:9876/base/test-config/karma-test-shim.js:514:2865)
at m (http://localhost:9876/base/test-config/karma-test-shim.js:514:9934)
```

### ./test-config/karma.conf.js

var webpackConfig = require('./webpack.test.js');

module.exports = function (config) {
var _config = {
basePath: '../',

frameworks: ['jasmine'],

files: [
'./test-config/ssd-refresh-debug.js',
{
pattern: './test-config/karma-test-shim.js',
watched: true
},
{
pattern: './src/assets/**/*',
watched: false,
included: false,
served: true,
nocache: false
}
],

proxies: {
'/assets/': '/base/src/assets/'
},

preprocessors: {
'./test-config/karma-test-shim.js': ['webpack', 'sourcemap']
},

webpack: webpackConfig,

webpackMiddleware: {
stats: 'errors-only'
},

webpackServer: {
noInfo: true
},

browserConsoleLogOptions: {
level: 'log',
format: '%b %T: %m',
terminal: true
},

coverageIstanbulReporter: {
reports: ['html', 'lcovonly'],
fixWebpackSourcePaths: true
},

reporters: config.coverage ? ['kjhtml', 'dots', 'coverage-istanbul'] : ['kjhtml', 'dots'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
};

config.set(_config);
};

### ./test-config/webpack.test.js

var webpack = require('webpack');
var path = require('path');

module.exports = {
devtool: 'inline-source-map',

resolve: {
extensions: ['.ts', '.js']
},

module: {
rules: [{
test: /\.ts$/,
loaders: [{
loader: 'ts-loader'
}, 'angular2-template-loader']
},
{
test: /.+\.ts$/,
exclude: /(index.ts|mocks.ts|\.spec\.ts$)/,
loader: 'istanbul-instrumenter-loader',
enforce: 'post',
query: {
esModules: true
}
},
{
test: /\.html$/,
loader: 'html-loader?attrs=false'
},
{
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/,
loader: 'null-loader'
}
]
},

plugins: [
new webpack.ContextReplacementPlugin(
// The (\\|\/) piece accounts for path separators in *nix and Windows
/(ionic-angular)|(angular(\\|\/)core(\\|\/)@angular)/,
root('./src'), // location of your src
{} // a map of your routes
)
]
};

function root(localPath) {
return path.resolve(__dirname, localPath);
}

### ./test-config/karma-test-shim.js

Error.stackTraceLimit = Infinity;

require('core-js/es6');
require('core-js/es7/reflect');

require('zone.js/dist/zone');
require('zone.js/dist/long-stack-trace-zone');
require('zone.js/dist/proxy');
require('zone.js/dist/sync-test');
require('zone.js/dist/jasmine-patch');
require('zone.js/dist/async-test');
require('zone.js/dist/fake-async-test');

var appContext = require.context('../src', true, /\.spec\.ts/);

appContext.keys().forEach(appContext);

var testing = require('@angular/core/testing');
var browser = require('@angular/platform-browser-dynamic/testing');

testing.TestBed.initTestEnvironment(browser.BrowserDynamicTestingModule, browser.platformBrowserDynamicTesting());

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。