2016-08-09 12 views
0

Ich verwende Jasmine und Karma für Schreibeinheit Tests und Code-Abdeckung. Ich habe die Aufgaben erstellt Gulp verwenden und sie durch Aufgabe Läufer Explorer in VS 2015 Update 3.Integrieren von Javascripts Einheit Testet Code-Abdeckung in MSBuild

var gulp = require("gulp"); 
 
var Server = require('karma').Server; 
 
var remapIstanbul = require('remap-istanbul/lib/gulpRemapIstanbul'); 
 

 
gulp.task('unit-tests', function (done) { 
 
    new Server({ 
 
     configFile: __dirname + '/karma.conf.js' 
 
    }, done).start(); 
 
}); 
 

 
gulp.task('code-coverage', function() { 
 
    return gulp.src('_reports/coverage-javascript.json') 
 
     .pipe(remapIstanbul({ 
 
      reports: { 
 
       'json': '_reports/coverage-typescript.json', 
 
       'html': '_reports/html-report' 
 
      } 
 
     })); 
 
});

Ich will laufen die generierten HTML-Ergebnisdatei, dh von _reports/html- lesen report/index.html Datei während Gated Builds oder Nightly Builds. Ich möchte diese Codeabdeckung verwenden, um bestimmte Aktionen wie das Stoppen des Builds auszuführen, wenn die Codeabdeckung unter 80% liegt oder wenn ein Test fehlgeschlagen ist.

Wie kann ich das tun?

+0

Sie können es mit gulp-msbuild (https://www.npmjs.com/package/gulp-msbuild) versuchen und Schluckaufgabe während der Gated Builds oder Nightly-Builds ausführen. –

+0

@ s09: Ich habe gulp-msbuild überprüft, aber das dient nicht meinem Zweck. Ich habe bereits die MSbuild-Konfiguration getestet und funktioniert. Ich muss Schluckaufgaben in sie integrieren. –

Antwort

0

Ich habe eine Lösung implementiert, die MSBuild fehlschlägt, wenn ein Komponententest fehlgeschlagen ist. Im Grunde schrieb ich ein Custom Target in meine Projekt.csproj Datei, die nach 'CompileTypeScript' Ziel läuft.

<PropertyGroup> 
 
    <CompileDependsOn> 
 
     $(CompileDependsOn); 
 
     GulpBuild; 
 
    </CompileDependsOn> 
 
</PropertyGroup> 
 
<Target Name="GulpBuild" DependsOnTargets="CompileTypeScript"> 
 
    <Exec Command="./node_modules/.bin/gulp task-name" /> 
 
</Target>

Diese Aufgabe wird ausgeführt, nachdem Visual Studio TS zu JS kompiliert. In Build-Server 'Path' Variable ist nicht für 'Schluck' festgelegt, deshalb übergeben Sie den Befehl durch node_modules .bin-Ordner.

Verwandte Themen