I'm trying to set up some tests for Validators in my component. But when I try to load a component inside a test, I get the following Error:
ERROR: Unexpected value '[object Object]' declared by the module 'DynamicTestModule' at http://localhost:9876/base/config/spec-bundle.js:52950:34
This is my spec file:
import {TestBed, async, ComponentFixture} from "@angular/core/testing";
import {PersDatenEditDetailsComponent} from "../PersDatenEditDetails.Component";
import {LEVEL} from "../../../../apollo-logging/LogLevel";
import LoggingModule from "../../../../apollo-logging/Logging.Module";
import {isDevMode} from "@angular/core";
describe('PersDatenEditName', () => {
let comp: PersDatenEditDetailsComponent;
let fixture: ComponentFixture<PersDatenEditDetailsComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [PersDatenEditDetailsComponent, LoggingModule.forRoot({level: isDevMode() ? LEVEL.ALL : LEVEL.ERROR}),
]
}).compileComponents();
fixture = TestBed.createComponent(PersDatenEditDetailsComponent);
comp = fixture.componentInstance;
}));
The lines:
fixture = TestBed.createComponent(PersDatenEditDetailsComponent);
comp = fixture.componentInstance;
Are causing the Errors.
My spec-bundle.js looks like this:
Error.stackTraceLimit = Infinity;
require('core-js/es6');
require('core-js/es7/reflect');
// Typescript emit helpers polyfill
require('ts-helpers');
require('zone.js/dist/zone');
require('http://zone.js/dist/long-stack-trace-zone');
require('zone.js/dist/proxy'); // since zone.js 0.6.15
require('http://zone.js/dist/sync-test');
require('http://zone.js/dist/jasmine-patch'); // put here since zone.js 0.6.14
require('http://zone.js/dist/async-test');
require('http://zone.js/dist/fake-async-test');
// RxJS
require('rxjs/Rx');
var testing = require('@angular/core/testing');
var browser = require('@angular/platform-browser-dynamic/testing');
testing.TestBed.initTestEnvironment(
browser.BrowserDynamicTestingModule,
browser.platformBrowserDynamicTesting()
);
var testContext = require.context('../src', true, /\.spec\.ts/);
function requireAll(requireContext) {
return requireContext.keys().map(requireContext);
}
var modules = requireAll(testContext);
This is my karma-config file:
var path = require('path');
var srcDir = path.normalize(__dirname + '/../');
var specBundle = path.normalize(srcDir + '/config/spec-bundle.js');
module.exports = function(config) {
var testWebpackConfig = require('./webpack.test.js');
var preProcessors = {};
preProcessors[specBundle] = ['coverage', 'webpack', 'sourcemap'];
config.set({
basePath: '',
/*
* Frameworks to use
*
* available frameworks: https://npmjs.org/browse/keyword/karma-adapter
*/
frameworks: ['jasmine'],
exclude: [ ],
files: [
{
pattern: path.normalize(srcDir + '/config/spec-bundle.js'),
watched: false
}
],
preprocessors: preProcessors,
webpack: testWebpackConfig,
coverageReporter: {
dir : 'coverage/',
reporters: [
{ type: 'text-summary' },
{ type: 'lcov' }
]
},
// Webpack please don't spam the console when running in karma!
webpackServer: { noInfo: true },
reporters: [ 'mocha', 'coverage', 'junit' ],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: false,
browsers: [
'Chrome'
],
singleRun: false
});
};
Would be great if anyone could help me out.
moi aussi j'ai le meme problem
RépondreSupprimer