2015-08-05 39 views
9

Próbuję uruchomić test karmy za pomocą zadania gulp. Używam https://github.com/karma-runner/gulp-karma i z jakiegoś powodu gulp nie może zlokalizować mojego pliku karma.conf.js. Ten plik znajduje się w tym samym folderze co plik gulp. Korzeń projektu. Bez względu na to, jaką ścieżkę podaję, pojawia się ten sam błąd. Plik ./karma.conf.js nie istnieje. Nie mogę wymyślić, jak poprawnie podążać ścieżką. Oto kod zadania gulp.gulp zadanie nie może znaleźć karma.conf.js

gulp.task('tdd', function (done) { 
    new Server({ 
    configFile: 'karma.conf.js' 
    }, done).start(); 
}); 

Odpowiedz

9

W ten sposób buforuję karmę za pomocą Gulpa (oba pliki znajdują się w tym samym katalogu głównym).

var karma = require('karma'); 

gulp.task('karma', function (done) { 
    karma.server.start({ 
    configFile: __dirname + '/karma.conf.js' 
    }, done); 
}); 

UPDATE

Jeśli używasz node.js następnie

NODE Explnation for __dirname link

"Nazwa katalogu, w którym znajduje się dany skrypt aktualnie wykonywany w."

Jeśli nie są uruchomione node.js, to może wszystko, co potrzebne było

configFile: '/karma.conf.js' 

Ale jeśli używasz NODE następnie użyć pierwszego przykładu.

+0

Gdzie jest zdefiniowany __dirname? Wydaje się, że jest to niezdefiniowane, gdybym robił to w ten sposób ... – Hcabnettek

+0

Dodałem aktualizację do twojego pytania. – SoEzPz

+0

Cóż, używam gulp, który jest aplikacją węzła. Dodanie __dirname działało jak mistrz. Węzeł musi udostępnić go do wypicia. Dzięki wielkie! – Hcabnettek

3

Jeśli inny katalog docelowy jest przypisany do __dirname, oznacza to, że nie działa. Spróbuj tego:

var Server = require('karma').Server 
gulp.task('test', function (done) { 
    new Server({ 
    configFile: require('path').resolve('karma.conf.js'), 
    singleRun: true 
    }, done).start(); 
});