1
0
Fork 0

Lisätty invoke komennot

This commit is contained in:
Vili Sinervä 2022-10-15 19:41:38 +03:00
parent 83fd8ea522
commit 71a6426028
8 changed files with 26 additions and 6 deletions

View file

@ -1,3 +1,3 @@
[run]
source = src
omit = src/main.py,src/**/__init__.py,src/tests/**,src/ui.py,src/musiikki_generaattori.py
omit = src/main.py,src/**/__init__.py,src/tests/**,src/ui.py

3
.gitignore vendored
View file

@ -128,6 +128,5 @@ dmypy.json
# Pyre type checker
.pyre/
# Ignore ceratin MIDI-files
# Ignore certain MIDI-files
/*.mid
/src/**/*.mid

View file

@ -13,7 +13,7 @@ Ohjelman vaatimat kirjastot voi asentaa komennolla
Ohjelma on nyt valmis käytettäväksi
`python3 src/main.py`
`invoke start`
# Opetusdata
Opetusdataksi kelpaa mikä tahansa MIDI-tiedosto, mutta itse olen käyttänyt MuseScore-palvelua tietyillä [hakukriteereillä](https://musescore.com/sheetmusic?instrument=2&instrumentation=114&license=to_share&recording_type=public-domain). Ainoa rajoitus on se, että ohjelma jättää huomiotta molli-sävellajeissa (minor key signature) olevat osat. Laadun parantamiseksi jokaisessa MIDI-tiedoston raidassa ("track") olisi hyvä olla vain yksi melodia. Edellä olevasta linkistä löytyvät tiedostot ovat olleet sopivia, joten se on varma valinta, jos olet epävarma.

View file

@ -8,16 +8,19 @@ Automaattinen yksikkötestaus on toteutettu pytest-kirjastolla ja testikattavuud
### Ohjeet
Ennen testien suorittamista tulee pytest- ja coverage-kirjastot olla asennettuna käytössä olevassa ympäristössä. Testit saa suoritettua kommennolla
`pytest src`
`invoke test`
projektin juurikansiosta. Testikattavuusraportin voi luoda juurikansiosta komennolla
` coverage run --branch -m pytest src && coverage html`
`invoke coverage-report`
Tämän jälkeen raportti löytyy tiedostosta `htmlcov/index.html`.
![Testikattavuusraportti. Kokonaiskattavuus 99%](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/kattavuus.png?raw=true)
Koodin laadun automaattinen "testaus" on toteutettu pylintillä:
`invoke lint`
## Subjektiivinen testaus
Viikko 4: Generoin koodin nykyisellä versiolla 4:nnen asteen Markovin ketjulla lyhyen melodian. Vertailukohtana generoin täysin sattumanvaraisen melodian. Mielestäni ero on huomattava, varsinkin kun otetaan huomioon Markovin ketjujen yksinkertaisuus.

View file

@ -3,6 +3,7 @@ attrs==22.1.0
coverage==6.4.4
dill==0.3.5.1
iniconfig==1.1.1
invoke==1.7.3
isort==5.10.1
lazy-object-proxy==1.7.1
mccabe==0.7.0

BIN
src/tests/testiMidi.mid Normal file

Binary file not shown.

BIN
src/tests/testiMidi2.mid Normal file

Binary file not shown.

17
tasks.py Normal file
View file

@ -0,0 +1,17 @@
from invoke import task
@task
def start(ctx):
ctx.run("python3 src/main.py", pty=True)
@task
def lint(ctx):
ctx.run("pylint src", pty=True)
@task
def test(ctx):
ctx.run("pytest src", pty=True)
@task
def coverage_report(ctx):
ctx.run("coverage run --branch -m pytest src && coverage html", pty=True)