茉莉花忽略打字稿testing文件?

这是我第一次和Jasmine一起制作一个项目,我正在跟着一个教程,但马上就要解决问题了。

我已经安装了jasmine-node,typings和typescript。 我也跑了:

typings install dt~jasmine --save-dev --global 

为茉莉花打字稿。

现在我的./spec文件夹中有一个testing文件,如下所示:

 import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { DatePickerComponent } from '../src/components/via-datepicker.component'; import * as moment from 'moment'; const Moment: any = (<any>moment).default || moment; describe('DatePickerComponent', () => { let component: DatePickerComponent; let fixture: ComponentFixture<DatePickerComponent>; beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ DatePickerComponent ] }) .compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(DatePickerComponent); component = fixture.componentInstance; fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); it('should open when clicked', () => { fixture.debugElement.nativeElement.querySelector('body').click(); fixture.whenStable().then(() => { expect(component.opened); }); component.close(); }); describe('While open', () => { beforeEach(() => { component.open(); }); describe('Pressing the "Today\'s date" button', () => { it('should set the value of the picker to the current date and close it', () => { fixture.debugElement.nativeElement.querySelector('.datepicker-buttons button').click(); expect(Moment().isSame(component.value, 'day') && Moment().isSame(component.value, 'month')); expect(!component.opened); }); }); describe('Clicking on a date', () => { it('should change the value of the picker and close it', () => { let oldValue: any = component.value; fixture.debugElement.nativeElement.querySelectorAll('.day')[10].click(); expect(!component.opened); expect(!component.value.isSame(oldValue)); }); }); }); }); 

但是当我运行这个命令:

 node_modules/jasmine-node/bin/jasmine-node spec 

我得到这个结果:

 Finished in 0 seconds 0 tests, 0 assertions, 0 failures, 0 skipped 

很显然,我的testing文件被忽略。 或者,也许我错过了一些图书馆? 如果是这样的话,我会收到错误信息吗? 这里的主要问题是我没有给出什么问题的方向,除了茉莉花似乎没有“看到”的testing文件出于某种原因。

只是试图推进我的项目。 任何build议将不胜感激。

看起来好像你的testing运行者不知道你正在尝试运行打字稿testing。 你是否使用Karma作为你的testing赛跑者? 如果是这样的话,您需要将您的Typescript文件添加到您的karma.config文件中,然后安装karma- typescript并configuration您的karma.config文件,类似于下面所示。 密切关注对框架,文件和预处理器部分的补充。

karma.config

 module.exports = function(config) { config.set({ // base path that will be used to resolve all patterns (eg. files, exclude) basePath: '', // frameworks to use // available frameworks: https://npmjs.org/browse/keyword/karma-adapter frameworks: ['jasmine', 'karma-typescript'], // list of files / patterns to load in the browser files: [ { pattern: "app/tests/**/*.spec.js"} ], // list of files to exclude exclude: [ ], // preprocess matching files before serving them to the browser // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: { "app/tests/**/*.spec.ts": ["karma-typescript"] }, // test results reporter to use // possible values: 'dots', 'progress' // available reporters: https://npmjs.org/browse/keyword/karma-reporter reporters: ['progress'], // web server port port: 9876, // enable / disable colors in the output (reporters and logs) colors: true, // level of logging // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG logLevel: config.LOG_INFO, // enable / disable watching file and executing tests whenever any file changes autoWatch: false, // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher browsers: [], // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits singleRun: true }) };