テストでバージョンアップに備える

概要

毎回ツールのアップデート確認するのは大変なので、
toxを使って一括でMayaのバージョンのpytestが行える様にしてみました。

コツコツ今からでもテストを書いて、
CIでtoxを回し優雅にMayaのアップデートに備えるべし!

この内容で達成できること

達成できないこと

サンプルリポジトリはこちら

そもそもテストとは

こちらが非常にわかりやすいです。
テスト駆動開発でとても有名な方の解説。
50 分でわかるテスト駆動開発

TA的にテストは何が嬉しい?

色々なメリットはありますが、主に3点
- コードのクオリティーが上がりやすい - テスト書きづらい→一つのクラスでいろいろやりすぎ、設計があんまり - テストコード自体が生きるドキュメントになる - Mayaのバージョンアップ時にテストを回すだけであらかた正常に動いているツールがわかる

開発環境

実行方法

実際にサンプルリポジトリを解説しつつ、進めていきます。

サンプルリポジトリをクローンする

クローン後、クローンしたフォルダにカレントディレクトリを移動します。

# Documents以下にクローンした場合
# C:\Users\InTack2\Documents>

cd tox-sample
# C:\Users\InTack2\Documents\tox-sample>

Python2.7をインストールする

Mayaのmayapyにバージョンを合わせてインストールしてください。
そこまで神経質にならなくてもマイナーバージョン位であればそこまで影響ないと思いますが、念のため。
(Maya2020ならPython 2.7.11)

インストールしたpythonに「tox」をインストール

python -m pip install tox

テストするMayaに合わせてtoxの設定を変更する

tox.iniを開きテストを行いたいバージョンのコメントアウトを外してください。
※存在しないmayapyはコメントアウトしないとエラーになるので忘れずに

envlist = 
    ; py38
    ; py27
    mayapy20
    ; mayapy19 ←;を外して有効にする
    ; mayapy18

toxを実行する

python -m tox

しばらくすると下記のような結果となれば成功です:)

Image from Gyazo

内部的にはmayapyを使用し、テスト実行できています。

解説

執筆中