Harjoitustyö on Go:lla kirjoitettu terminaalipohjainen (ncurses-tyylinen) asiakasohjelma Matrix-protokollalle.
- Tästä reposta löytyy
- dokumentaatio
- releaset, koska ohjelma ei ole haluamallani tasolla oikeita releaseja varten
- laskarit
- gomuks-reposta löytyy
- itse projekti
- testit
Mavenia vastaavana riippuvuuksien hallintajärjestelmänä käytetään dep
-järjestelmää. dep
:ssä riippuvuudet tallennetaan git-repositorioon vendor-kansion
alle, ja ne saa tarvittaessa päivitettyä komennolla dep ensure -update
. Käyttäjien
ei kuitenkaan tarvitse päivittää riippuvuuksia itse, vaan riittää, että repositorio
päivitetään.
Toiminnoissa mainittu $GOPATH
-kansio on yleensä $HOME/go
. GOPATH
ia voi
muuttaa asettamalla ympäristömuuttujan ennen go
-komennon ajamista, esim:
export GOPATH=$HOME/new_gopath
Asenna Go:n standardityökalut.
Asenna gomuks:
$ go get -u maunium.net/go/gomuks
Tämä komento lataa tai päivittää gomuksin kansioon $GOPATH/src/maunium.net/go/gomuks
,
hakee kaikki riippuvuudet ja kompiloi ohjelman kansioon $GOPATH/bin
.
Gomuksin päivitystä varten riittää, että ajaa asennuskomennon uudestaan.
Varmista, että assert-kirjasto on asennettu:
$ go get github.com/stretchr/testify/assert
Testien suoritus:
$ go test ./... -coverprofile=coverage.out
Testikattavuustietojen lukeminen (mm. kokonaiskattavuus, raportti tekstinä terminaaliin):
$ go tool cover -func=coverage.out
Testikattavuusraportin generointi (raportti avautuu selaimessa):
$ go tool cover -html=coverage.out
Raportin voi halutessaan tallentaa tiedostoon selaimen avaamisen sijasta:
$ go tool cover -html=coverage.out -o coverage.html
Tiedosto nykyiseen hakemistoon:
$ go build
TAI tiedosto $GOPATH/bin
:iin:
$ go install
https://godoc.org/maunium.net/go/gomuks
Asenna golint:
$ go get -u golang.org/x/lint/golint
Aja golint. grep
-osiot poistavat varoitukset puuttuvasta dokumentaatiosta ja kaikki tarkistukset ulkoisilta kirjastoilta.
$ golint ./... | grep -v "should have comment" | grep -v "vendor/"
Tyyliongelmat tulostetaan stdout:iin. Mitään muuta ei tulosteta, eli tyyliongelmien puuttuessa mitään ei tulosteta.