2016-05-23 5 views
2

Я пытаюсь заставить Jasmine работать с Visual Studio Test Explorer. Итак, мой тестовый файл выглядел следующим образом:AngularJS, Jasmine и Visual Studio 2015 Test Explorer

/// <reference path="../wwwroot/lib/angular/angular.min.js" /> 
/// <reference path="../wwwroot/lib/angular-mocks/angular-mocks.js" /> 
/// <reference path="../wwwroot/lib/jasmine/lib/jasmine-core/jasmine.js" /> 

/// <reference path="../wwwroot/lib/angular-arrays/dist/angular.arrays.js" /> 
/// <reference path="../wwwroot/lib/angular-simple-cache/dist/simplecache.js" /> 
/// <reference path="../wwwroot/lib/angular-toastr/dist/angular-toastr.tpls.min.js" /> 
/// <reference path="../wwwroot/lib/ng-file-upload/ng-file-upload.min.js" /> 

/// <reference path="../app/common/common.js" /> 
/// <reference path="../app/common/services.js" /> 

var _sharedProductHandler, 
    _pricingProducts, 
    _availabilityProducts; 

beforeEach(module('piiick.common')); 
beforeEach(inject(['SharedProductHandler', function (sharedProductHandler) { 
    _sharedProductHandler = sharedProductHandler; 

    _pricingProducts = [{ 
     productId: 0 
    }]; 
    _availabilityProducts = [{ 
     productId: 0 
    }]; 
}])); 

describe('Service: SharedProductService', function() { 
    it('We have a list of pricing products', function() { 
     expect(_pricingProducts.length).toBeGreaterThan(0); 
    }); 

    it('We have a list of availability products', function() { 
     expect(_availabilityProducts.length).toBeGreaterThan(0); 
    }); 
}); 

Если я открываю в браузере тесты работать нормально. Но я хочу, чтобы они появлялись в тестовом проводнике. Я установил адаптер Chutzpah для тестового проводника, но мои тесты там не появляются. I read that you can use a chutzpah.json file to add settings, поэтому я сделал это, но я не могу заставить свои тесты появляться в тестовом проводнике. Я думаю, что стоит упомянуть, что я использую Visual Studio 2015.

Кто-нибудь знает, как я могу получить мои тесты, чтобы появиться в тестовом проводнике?

ответ

1

Да, я работал на это .. Файл chutzpah.json должен быть в корне (это может быть где угодно, но настройки пути должны быть относительно везде, где файл JSON является Mine выглядит следующим образом:.

{ 
    "Framework": "jasmine", 
    "References": [ 
    { "Path": "wwwroot/lib/angular/angular.min.js" }, 
    { "Path": "wwwroot/lib/angular-mocks/angular-mocks.js" }, 
    { "Path": "wwwroot/lib/jasmine/lib/jasmine-core/jasmine.js" }, 

    { "Path": "wwwroot/lib/angular-arrays/dist/angular.arrays.js" }, 
    { "Path": "wwwroot/lib/angular-simple-cache/dist/simplecache.js" }, 
    { "Path": "wwwroot/lib/angular-toastr/dist/angular-toastr.tpls.min.js" }, 
    { "Path": "wwwroot/lib/ng-file-upload/ng-file-upload.min.js" }, 

    { "Path": "app/common/common.js" }, 
    { "Path": "app/common/services.js" } 
    ], 

    "Tests": [ 
    { "Path": "tests" } 
    ] 
} 

спецификации файлов больше не нужны никакие ссылки, так что может выглядеть следующим образом:

var _sharedProductHandler, 
    _pricingProducts, 
    _availabilityProducts; 

beforeEach(module('piiick.common')); 
beforeEach(inject(['SharedProductHandler', function (sharedProductHandler) { 
    _sharedProductHandler = sharedProductHandler; 

    _pricingProducts = [{ 
     productId: 0 
    }]; 
    _availabilityProducts = [{ 
     productId: 0 
    }]; 
}])); 

describe('Service: SharedProductService', function() { 
    it('We have a list of pricing products', function() { 
     expect(_pricingProducts.length).toBeGreaterThan(0); 
    }); 

    it('We have a list of availability products', function() { 
     expect(_availabilityProducts.length).toBeGreaterThan(0); 
    }); 
}); 

и просто для собственного ведения, bower.json не нужны только эти два:

{ 
    "name": "ASP.NET", 
    "private": true, 
    "dependencies": { 
    "angular-mocks": "^1.5.5", 
    "jasmine": "^2.4.1" 
    }, 
    "ignore": [ 
    "tests" 
    ] 
} 
+0

Рад, что вы это поняли! –

Смежные вопросы