2016-05-23 17 views
2

Ich versuche, Jasmine mit Visual Studio Test Explorer arbeiten zu lassen. So sah meine Test-Datei wie folgt:AngularJS, Jasmine und 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); 
    }); 
}); 

Wenn ich im Browser öffnen die Tests gut laufen. Aber ich möchte, dass sie im Test Explorer erscheinen. Ich habe Chutzpah Adapter für den Test Explorer installiert, aber meine Tests erscheinen dort nicht. I read that you can use a chutzpah.json file to add settings, also habe ich das gemacht, aber ich kann meine Tests nicht im Test Explorer erscheinen lassen. Ich denke, es ist erwähnenswert, dass ich Visual Studio 2015 verwende.

Wer weiß, wie ich meine Tests im Test Explorer angezeigt bekommen kann?

Antwort

1

Richtig, ich arbeitete this out .. Die chutzpah.json Datei im Root sein müssen (es kann überall sein, aber die Pfadeinstellungen müssen relativ sein, wo die JSON-Datei ist -Mine sah wie folgt aus:.

{ 
    "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" } 
    ] 
} 

die spec-Dateien nicht mehr alle Verweise benötigen, so dass wie folgt aussehen:

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); 
    }); 
}); 

und nur für meine eigene Referenz, die bower.json braucht nur diese beiden:

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

Froh, dass Sie es herausgefunden haben! –