abessifi.fitnesse

Ansible FitNesse

Opis

To jest rola Ansible do instalacji ramy testowej FitNesse do testów akceptacyjnych na serwerach GNU/Linux.

Wymagania

Wymagania programowe

  • Python 2.7 lub wyższy (dostępny na serwerach docelowych)
  • Ansible 2.0 lub wyższy (można łatwo zainstalować za pomocą pip. Przykład: sudo pip install ansible==2.0.0.2)
  • Vagrant 1.8 lub wyższy (do celów testowych)
  • Virtualbox (do testowania z Vagrant)
  • Oh-my-box, narzędzie opcjonalne, jeśli chcesz szybko przygotować i zapakować podstawowy box Vagrant z zainstalowanym Ansible i Rubi (zalecane do pisania i uruchamiania testów akceptacyjnych z test-kitchen przeciwko roli Ansible).

Obsługiwane systemy

  • Ubuntu
  • Debian
  • CentOS

Więcej informacji w pliku metadanych roli.

Zależności

Zmienne roli

  • fitnesse_firefox_version - Instalacja określonej wersji Firefoksa (domyślnie: 41.0).
  • fitnesse_firefox_set_default - Jeśli ustawione na true, obecna wersja Firefoksa fitnesse_firefox_version zostanie ustawiona jako domyślna (domyślnie: false).
  • fitnesse_version - Wersja samodzielnego JAR FitNesse (domyślnie: 20151230).
  • fitnesse_get_xebium - Jeśli ustawione na true, Ansible pobierze i zainstaluje bibliotekę Xebium w katalogu /usr/local/lib/fitnesse (domyślnie: false).
  • fitnesse_xebium_download_url - URL do pobrania biblioteki Xebium (domyślnie: brak).
  • fitnesse_get_project - Jeśli ustawione na true, Ansible automatycznie pobierze i zainstaluje Twój projekt FitNesse, który powinien być zarchiwizowanym folderem FitNesseRoot (domyślnie: false).
  • fitnesse_project_download_url - URL do pobrania pakietu testów FitNesse (domyślnie: brak).
  • fitnesse_clean_install - Ustaw to na true, jeśli chcesz zastąpić istniejący folder FitNesseRoot nowymi skryptami testowymi (domyślnie: false).
  • fitnesse_service_port - Domyślny numer portu, do którego jest przypisana usługa FitNesse. Numer portu powinien być >=1024 (domyślnie: 8080).
  • fitnesse_java_options - Możesz przekazać niektóre opcje java do komendy, która uruchamia FitNesse. Przykład: -Xmx2000M -Xms1000M -Duser.country=FR -Duser.language=fr -Dfile.encoding=UTF-8 (domyślnie: brak).
  • fitnesse_provision_mode - Ten parametr wskazuje sposób, w jaki zostanie zainstalowana rama fitnesse. Usługa fitnesse może być zainstalowana i skonfigurowana bezpośrednio na docelowym hoście, jeśli ustawisz ten parametr na on-host. Jeśli parametr jest ustawiony na docker, Ansible zainstaluje platformę w kontenerze Docker. Obsługiwane wartości to ['on-host', 'docker'] (domyślnie: on-host).
  • fitnesse_docker_ctn_name - Nazwa kontenera Docker fitnesse (domyślnie: fitnesse).
  • fitnesse_docker_img_name - Nazwa obrazu Docker fitnesse (domyślnie: abessifi/fitnesse:latest).
  • fitnesse_docker_ctn_port - Otwarty port kontenera fitnesse (domyślnie: 8080).
  • fitnesse_docker_host_port - Port hosta, który ma być powiązany z otwartym portem kontenera fitnesse. To jest przydatne, jeśli chcesz uzyskać dostęp do fitnesse przez IP hosta (domyślnie: 8080).

Dostępne tagi

  • fitnesse-setup - Ten tag służy do przeprowadzenia pełnej konfiguracji ramy FitNesse.
  • fitnesse-start-service - Uruchamia usługę FitNesse.
  • fitnesse-stop-service - Zatrzymuje usługę FitNesse.
  • fitnesse-restart-service - Restartuje usługę FitNesse.
  • fitnesse-build-docker-image - Użyj tego tagu, jeśli chcesz przygotować obraz Docker dla FitNesse.
  • fitnesse-setup-container - Jeśli ustawiony, ten tag uruchamia kontener Docker dla FitNesse.
  • fitnesse-remove-container - Użyj tego tagu, jeśli chcesz usunąć kontener FitNesse. Można go połączyć z fitnesse-setup-container, aby ponownie zainstalować kontener FitNesse.
  • fitnesse-install-firefox - Użyj tego tagu, jeśli chcesz zainstalować niestandardową wersję Firefoksa.

Użycie

FitNesse na hoście

Aby zainstalować ramę FitNesse w trybie on-host, najpierw sprawdź rolę z Ansible galaxy:

ansible-galaxy install abessifi.fitnesse

Oto przykład konfiguracji FitNesse na hoście od zera:

---
- hosts: all
  roles:
    # Zainstaluj Oracle JDK 7, jeśli tryb instalacji to 'on-host'
    - role: abessifi.java
      java_jdk_type: 'oracle'
      become: yes
      when: fitnesse_provision_mode == 'on-host'
    # Zainstaluj FitNesse
    - role: ansible-fitnesse
      fitnesse_firefox_version: '42.0'
      fitnesse_firefox_set_default: true

Uwaga: Tagi Ansible install-java i fitnesse-setup powinny być określone dla tego typu instalacji.

FitNesse z Dockerem

Z drugiej strony, możesz uruchomić FitNesse w kontenerze Docker. Przygotowaliśmy obraz dla Ciebie i możesz zbudować swój :)

Budowanie obrazu FitNesse

Jeśli interesujesz się DevOps, możesz użyć magicznego narzędzia Packer oraz jego wtyczki packer-post-processor-docker-dockerfile do przygotowania, zbudowania, oznaczenia i przesłania obrazu Docker. Wszystkie akcje są opisane w jednym prostym szablonie json zwanym szablonem Packer.

Przykładowy szablon test/packer/build_image.json już istnieje, aby zbudować obraz foobar/fitnesse:latest i przesłać go do publicznego rejestru Docker Hub. Nie krępuj się dostosować ten plik szablonu, aby zbudować i przesłać swój własny obraz Docker do publicznego/prywatnego rejestru.

Po zainstalowaniu Packer i wtyczki dockerfile możesz zbudować obraz w następujący sposób:

cd ./test/packer/
packer build build_image.json

Oto przykład playbooka Ansible, który może być użyty do zainstalowania obrazu z FitNesse i biblioteką Xebium:

---
- hosts: localhost
  roles:
    - role: ansible-fitnesse
      fitnesse_provision_mode: 'docker'
      fitnesse_get_xebium: true
      fitnesse_xebium_download_url: 'http://url/to/the/xebium/jar/archive'

Uwaga: Upewnij się, że tag Ansible fitnesse-build-docker-image jest uznawany w pliku szablonu Packer:

...
  "extra_arguments": [
    "--tags=fitnesse-build-docker-image"
  ]
...

Uruchomienie kontenera FitNesse

Wracając do naszej roli fitnesse! Tym razem chcemy przygotować platformę w wersji "dockerized". W tym celu najpierw sprawdź rolę Docker z Ansible galaxy:

ansible-galaxy install abessifi.fitnesse

Następnie utwórz playbook, który wymienia różne role i parametry do przygotowania platformy. Załóżmy w poniższym przykładzie, że chcemy:

  • Zainstalować silnik Docker, aby uruchomić kontener FitNesse
  • Skonfigurować FitNesse i zainstalować Firefoksa v42 oraz ustawić go jako domyślną wersję (po stronie hosta)
  • Pobierz istniejący projekt FitNesse (projekt fitnesse to zestaw skryptów UAT napisanych w stylu kodu FitNesse)
  • Uruchom kontener FitNesse
  • Powiąż port kontenera z portem hosta (8080 => 9090)
---
- hosts: all
  vars:
    fitnesse_provision_mode: 'docker'
  roles:
    # Zainstaluj silnik Docker, jeśli tryb instalacji to 'docker'
    - role: abessifi.docker
      when: fitnesse_provision_mode == 'docker'
    # Zainstaluj FitNesse
    - role: ansible-fitnesse
      fitnesse_docker_host_port: 9090
      fitnesse_firefox_version: '42.0'
      fitnesse_firefox_set_default: true
      fitnesse_get_project: true
      fitnesse_project_download_url: 'http://url/to/existing/fitnesse/project/tarball'

Uwaga: Upewnij się, że wywołujesz Ansible z następującymi tagami: docker-setup, docker-install-dockerpy, fitnesse-install-firefox i fitnesse-setup-container.

Twój kontener jest uruchomiony z fitnesse! Serwer fitnesse powinien być teraz dostępny pod adresem http://:9090/

Rozwój i testowanie

Testowanie z Vagrant

Do szybkich testów możesz uruchomić maszynę wirtualną Ubuntu za pomocą Vagrant. W katalogu projektu test/vagrant/ możesz dostosować plik Vagrantfile opisujący Twoją maszynę wirtualną i dostosować zestaw plików inwentarza Ansible odpowiednich dla Twojego środowiska (adresy IP, dane logowania SSH itp.).

Uwaga: Rola ansible.fitnesse musi być uruchamiana z kontem sudo. W tym przykładzie użytkownik vagrant ma już skonfigurowane uprawnienia sudo.

Zaczynasz od pobrania projektu z GitHub lub Ansible Galaxy, a następnie wchodzisz do katalogu test/vagrant/.

Teraz uruchom i skonfiguruj maszynę wirtualną:

vagrant up

Twoja maszyna wirtualna testowa jest uruchomiona z ramą FitNesse!

Uruchamianie testów akceptacyjnych

Jeszcze nie zaimplementowane.

Informacje o autorze

Ta rola została stworzona przez Ahmed Bessifi, entuzjastę DevOps.

O projekcie

Install FitNesse acceptance testing framework on GNU/Linux servers.

Zainstaluj
ansible-galaxy install abessifi.fitnesse
Licencja
mit
Pobrania
66
Właściciel
I’m a tech enthusiast who breathes code and loves creating beautiful software. I’m an active contributor to opensource projects and maintain a few of my own.