Wercker で Scheme なモジュールのテストした
全国七千万の自動テストファンのみなさんこんばんは! 昨日ね、wercker でテストしたのでそんな感じのことを書くよ。
wercker.yml はこんな感じ:
# This references a standard debian container from the # Docker Hub https://registry.hub.docker.com/_/debian/ # Read more about containers on our dev center # http://devcenter.wercker.com/docs/containers/index.html box: debian # You can also use services such as databases. Read more on our dev center: # http://devcenter.wercker.com/docs/services/index.html # services: # - postgres # http://devcenter.wercker.com/docs/services/postgresql.html # - mongodb # http://devcenter.wercker.com/docs/services/mongodb.html # This is the build pipeline. Pipelines are the core of wercker # Read more about pipelines on our dev center # http://devcenter.wercker.com/docs/pipelines/index.html build: # Steps make up the actions in your pipeline # Read more about steps on our dev center: # http://devcenter.wercker.com/docs/steps/index.html steps: - script: name: update apt code: | sudo apt-get update - script: name: install Make code: | sudo apt-get install -y make - script: name: install Guile code: | sudo apt-get install -y guile-2.0 - script: name: perform test code: | make check
make
も guile
も無い状態なので、いったん apt-get update
した後、それぞれインストールする。
2 つ同時にインストールしても多分大丈夫そう:
% sudo apt-get install make guile-2.0
気をつけなきゃいけないのが -y
というオプション。
これが無いと、永久にインストールが終わらないので、自動で y してくれるこのオプションを忘れないようにしよう。
いっちゃん上の Makefile はこう:
# $(srcdir)/Makefile check: make -C ./test
test/
の Makefile はこうなっている:
# $(srcdir)/test/Makefile all: check check: 01-simple 01-simple: guile -L ../lib -s ./01-simple.scm
それで srfi-64 ではテストが失敗しても、$?
は必ず 0 なので、失敗したかどうかわからない。
応急処置としてとりあえず、失敗したテストの個数を返すようにした:
(let ((runner (test-runner-current))) (exit (test-runner-fail-count runner)))
そしたら、失敗した。