TeXだってテスト書きたい(続)
前回は,LaTeXで単体テストを書くためのスタイルファイルであるqstest.styを紹介したが,今回はそれをJenkinsと連携させる方法を述べる.
Jenkinsからqstest.styの出力結果は直接読み取れない.テスト結果ならJUnitなどが吐き出すXML文書と同様の形式である必要がある.しかし,qstest.styを書き換えるのはもっと面倒である.なので,
Pythonスクリプトを書いた.ここに公開している.変換自体は単純で,特筆することはないので省略.jenkins-qstest.pyがスクリプト本体で,次のように利用する.
python3 jenkins-qstest.py example.tex
実行するとexample.xmlができるので,これをテスト結果としてJenkinsに読ませればOK.標準でlatexコマンドを使用するようになっているが,その辺はオプションでコントロール可能にしてある.
次のテストファイル
\documentclass{article} \usepackage{qstest} \IncludeTests{*} \LogTests{lgout}{*}{*} \begin{document} \begin{qstest} \begin{qstest}{Example}{label} \Expect*{\the\numexpr1+2}{3} \end{qstest} \begin{qstest}{Example-fail}{label} \Expect*{\numexpr1+2}{3} \end{qstest} \end{qstest} \end{document}
で実行した結果がこちら.
やったぜ.