2015-06-11 24 views
7

Nie mogę na całe życie znaleźć dokumentacji lub samouczka do testowania jednostek mokka w kompilacjach Visual Studio Online.Wywoływanie testów mokka w programie Visual Studio Team Services Build

Mam aplikację node.js, która jest budowana w VSO i wdrażana na platformie Azure. To wszystko działa cudownie. Nie mogę się domyślić, jak uruchomić pliki specyfikacji w procesie kompilacji.

Jak to zrobić? Czy gdzieś brakuje mojej dokumentacji?

+0

To nie jest mokka, ale tutaj jest przykład z Karmą, więc powinno Cię to przybliżyć https://blogs.msdn.microsoft.com/premier_developer/2017/05/17/integrating-angular-4-unit-tests- z-visual-studio-team-services-vsts/ –

Odpowiedz

0

Jeśli skonfigurowałeś plik package.json, aby móc uruchamiać testy, powinien to zrobić krok NPM, który wykonuje npm run test. Jeśli chcesz opublikować wyniki testu, upewnij się, że Mocha zapisuje wyniki w formacie zrozumiałym dla Visual Studio Team Services. JUnit format byłby bezpiecznym zakładem. Następnie wykonaj test opublikuj wyniki, który prześle wyniki testu.

Możesz również użyć programu Visual Studio Test Runner, w połączeniu z Chutzpah, aby uruchomić testy, ale przypuszczam, że będzie to dużo dodatkowej pracy do skonfigurowania i nie będzie wiele dodawać.

+0

Myślę, że XUnit jest bardziej obsługiwanym formatem w VSO, zobacz https://github.com/Microsoft/nodejstools/wiki/Test-Explorer#configuring-mocha-for-vs . – Compulim

+1

Moja zła. Próbowałem na VSO i powiedział, że XML wyniku testu XUnit nie jest w poprawnym formacie. JUnit wciąż jest najlepszym wyborem. – Compulim

3

Założono, że masz ustawione testy Mokka z twoim package.json, tj. Uruchamiasz testy z npm test. Aby uzyskać więcej informacji, zobacz https://docs.npmjs.com/cli/test.

W Visual Studio Online build/release:

  • dodać "npm" zadanie zainstalowania JUnit reporter
    • Run zwyczaj polecenia install mocha-junit-reporter
  • Dodaj "npm" zadanie
    • Wykonaj komendę niestandardową test -- --reporter mocha-junit-reporter
    • Wskazówki: Możesz zwiększyć limit czasu dodając --timeout 30000 ponieważ agent build może działać wolniej niż pole dev
  • Następnie dodać „Publish Wyniki testu” zadanie
    • Set „wynik testu format "do" JUnit "
    • Zaznacz pole" Kontynuuj przy błędzie "
    • W" Opcje kontroli ">" Uruchom to zadanie ", ustaw na" Nawet jeśli poprzednie zadanie się nie powiodło, chyba że kompilacja została anulowana "

Kolejka na kompilację, powinieneś zobaczyć wyniki testu Mokki w twojej kompilacji VSO.

BONUS! Możesz również dodać zasięg kodu do swojej kampanii Mocha z Istanbul.

Na szczycie schodów powyżej:

  • Install Stambuł lokalnie do package.json
    • Run npm install istanbul --save-dev
  • modyfikować swoje skrypty w package.json
    • Aktualizacja { "scripts": { "test": "istanbul test node_modules/mocha/bin/_mocha" } }
  • Modyfikacja "test npm" zadanie
    • polecenie Run niestandardowy test -- --report cobertura --report html -- --reporter mocha-junit-reporter
  • dodać "Publish Code Coverage Wyniki" zadanie
    • Set „Code Coverage narzędzia "do" Cobertura "
    • Ustaw" Plik podsumowania "na $(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml
    • Set "Raport Directory" do $(System.DefaultWorkingDirectory)/coverage/
    • Zaznacz pole "Kontynuuj w przypadku błędu" "Control Options"
    • Pod> "Run to zadanie", ustaw go na „Nawet jeśli poprzednie zadanie zakończyło się niepowodzeniem, chyba że kompilacja została anulowana”
  • Dodaj nowy build zmienną NPM_CONFIG_COVERAGE i ustawić ją na true

teraz masz oba testy jednostkowe i wyniki pokrycie kodu w raporcie kompilacji.

0

Po sporo fiddling mam go do pracy poprzez dodanie „zadanie wiersza komend” na mojej definicji kompilacji, użyłem następujących parametrów:

  • zestaw narzędzi do node
  • Set Argumenty do $(Build.SourcesDirectory)\node_modules\jasmine-node\bin\jasmine-node --verbose test\

moich testów są pod folderze "test", a także upewnić się, że jaśmin-węzeł jako zależność dev enter image description here

Powiązane problemy