2

Я использую AngularJS с TypeScript в веб-приложении в Visual Studio 2013. Я могу запускать тесты на JavaScript просто отлично, но тесты, написанные на языке TypeScript, не выполняются. На самом деле, ReSharper Test Runner отображает статус «Test Not Run» для каждого теста, написанного на языке TypeScript, и я понятия не имею, почему. Когда я читаю блоги об этой теме, они точно описывают, что я делаю.Модульные тесты AngularJS в TypeScript с жасмином не выполняются

Мой код для такого испытания блока является:

/// <reference path="../typings/jasmine/jasmine.d.ts" /> 
/// <reference path="../AngularApp/Models/Member.ts" /> 
/// <reference path="../AngularApp/Models/Contract.ts" /> 


describe("Member",() => { 
    "use strict"; 

    var contracts = new Array<App.Controllers.Contract>(); 
    var sut = new App.Controllers.Member("Elvis", "Presley", "350108-11.2222", 
     new Date("1935-01-08"), new Date("1977-08-16"), "M", "Home", "", "90210", "Graceland", 
     contracts); 

    it("must not be null",() => { 
     expect(sut).not.toBeNull(); 
    }); 


    it("must contain zero Contracts",() => { 
     expect(sut.contracts).not.toBeNull(); 
     expect(sut.contracts.length).toBe(0); 
    });  
}); 

Что может вызвать эту проблему?

ответ

1

Вы не можете напрямую запускать тесты, написанные на машинописном машинописном тексте, их необходимо сначала перевести в js. Поскольку вы используете визуальную студию, я полагаю, что ваши ts-файлы компилируются при сохранении, поэтому вам нужно проверить тестовый файл конфигурации (пример Karma.conf.js), чтобы узнать, ищет ли он тесты в правильном каталоге. Если вы хотите отлаживать тестовый файл ts, ваш тестовый бегун в визуальной студии должен поддерживать исходные карты. Посмотрите на этот тестовый бегун для Vs2013: https://github.com/MortenHoustonLudvigsen/KarmaTestAdapter. Он поддерживает исходные карты.

+1

я не использую карму, я использую Жасмин ... И тест ReSharper бегун находит испытания, он просто не запускать их. Он отображает сообщение «Test not run» для каждого теста TypeScript ... –

0

Вы можете попробовать обертывание тестового кода установки в методе beforeEach:

/// <reference path="../typings/jasmine/jasmine.d.ts" /> 
/// <reference path="../AngularApp/Models/Member.ts" /> 
/// <reference path="../AngularApp/Models/Contract.ts" /> 


describe("Member",() => { 
    "use strict"; 

    var contracts : any; 
    var sut : any; 

    beforeEach(() => { 
     var contracts = new Array<App.Controllers.Contract>(); 
     var sut = new App.Controllers.Member("Elvis", "Presley", "350108-11.2222", 
        new Date("1935-01-08"), new Date("1977-08-16"), "M", "Home", "", "90210", "Graceland", 
        contracts); 
    }); 

    it("must not be null",() => { 
     expect(sut).not.toBeNull(); 
    }); 


    it("must contain zero Contracts",() => { 
     expect(sut.contracts).not.toBeNull(); 
     expect(sut.contracts.length).toBe(0); 
    });  
}); 
0

Жасмин является основой для тестирования JavaScript. Таким образом, он несовместим с TypeScript. You может использовать TypeScript и протестировать его, вы должны перенести его сначала на JavaScript, используя Grunt, Gulp или Webpack.

установить пакет машинописных документов, а затем вы можете использовать tsc в командной строке, чтобы повернуть все файлы .ts в файлы .js - тогда это должно сработать.

я застрял на одной и той же проблемой :)