Przygotowałem zestaw testów w mokka za pomocą ZombieJS i Chai. Testy ładują stronę internetową i sprawdzają, czy różne usługi są poprawnie zapisane i wyświetlają się odwiedzającym stronę.Program Mocha uruchamia się programowo i przekazuje wyniki do zmiennej lub funkcji
Dążę do tego, aby testy były przeprowadzane codziennie, a następnie przesyłać wyniki e-mailem do mojego zespołu. Wszystkie testy przebiegają zgodnie z oczekiwaniami, ale blokada, którą uderzyłem, jest następująca.
Jak przekazać wyniki raportowania JSON do innego skryptu node.js, w którym mogę wysłać wyniki e-mailem. Budowanie e-maila i wysyłanie go będzie proste za pomocą nodemailera i podkreślenia szablonów.
Moje obecne myślenie jest dwa podejścia. Uruchom test mocha za pomocą skryptu powłoki i potokuj wyjście JSON do skryptu węzła i przetwórz JSON z argumentu wiersza poleceń. Coś jak ...
Inną alternatywą jest uruchomienie testów z poziomu skryptu węzła i uzyskanie zwróconego wyniku w zmiennej. Używam tutaj informacji do uruchomienia testów w węźle.
https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically
To działa poprawnie, ale gubię się w jaki sposób uzyskać wyniki reporter JSON do zmiennej z poniższym kodzie.
var Mocha = require('mocha'),
Suite = Mocha.Suite,
Runner = Mocha.Runner,
Test = Mocha.Test;
// First, you need to instantiate a Mocha instance
var mocha = new Mocha({
reporter: 'json'
});
var suite = new Suite('JSON suite', 'root');
var runner = new Runner(suite);
var mochaReporter = new mocha._reporter(runner);
mocha.addFile(
'/Users/dominic/Git/testing-rig/test/services/homepage.js'
);
runner.run(function(failures) {
// the json reporter gets a testResults JSON object on end
var testResults = mochaReporter.testResults;
console.log(testResults);
// send your email here
});
Jeśli ktoś ma jakieś wskazówki dotyczące najlepszego sposobu podejścia do tej kwestii lub jeśli zmierzam w zupełnie niewłaściwym kierunku, będę wdzięczny za wszelkie sugestie.
Przepraszam za powolną odpowiedź Riaana. To rozwiązuje dokładnie mój problem. Gratulujemy pierwszej zaakceptowanej odpowiedzi. – dlearious
Kiedy używam tego snipped, dostaję wszystkie informacje. Ale mocha również drukuje wszystko na standardowe wyjście. Czy istnieje sposób, aby powstrzymać to zachowanie i uzyskać tylko dane z testów bez żadnych danych wyjściowych? Dzięki za radę! – manixx
Zasadniczo znalazłem swoją odpowiedź tutaj: https://github.com/mochajs/mocha/issues/138#issuecomment-142608295 – manixx