ionic-team / ionic-team/ionic-unit-testing-example
Error output is minified
- Vorherrschende Sprache
- TypeScript
- Sterne
- 370
- Forks
- 144
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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());
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Start with test-config/karma.conf.js, test-config/webpack.test.js, and test-config/karma-test-shim.js, then run the Ionic test setup to reproduce the minified error output. Trace how webpack source maps and the Karma preprocessor are configured, and verify that failing tests report readable source locations rather than only karma-test-shim.js.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript, webpack
- Bereich
- testing-qa
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100