究極のバッチフレームワーク(予定) (株)JCGS 痴山 紘史
13
Batch
• バッチ処理用フレームワーク
• オペレータをプラグインとして用意
• XMLでオペレータの処理順序を記述
• スタンドアロン/アプリケーション用ツールどちらでも動作
• JCGSLauncher同様、CoreとUIが分かれている
18
testSuite
• テストの中からアプリケーションを起動
• アプリケーション上でテストを実行
• 実行結果を元のテストに返す
• 成功/失敗だけでなく、traceback 情報も返す!!
→通常のテストと同じ感覚で扱える
20
テストの例
import os
from JCGS.util import testSuite
import unittest
class TestUtil(unittest.TestCase):
def setUp(self):
self.d = os.path.dirname(__file__)
def test_maya_util2011(self):
f = os.path.join(self.d, 'test_maya_util.py')
ret = testSuite.run_test('maya', '2011 amd64 English', f)
self.assertEqual(True, ret)
def test_maya_util2012(self):
f = os.path.join(self.d, 'test_maya_util.py')
ret = testSuite.run_test('maya', '2012 amd64 English', f)
self.assertEqual(True, ret)
import os
import unittest
class Test_test_maya_util(unittest.TestCase):
def test_createWorkspace(self):
DCCTools.util.createWorkspace(wsPath)
self.assertEqual(True, os.path.exists(wsPath))
def run():
suite = unittest.TestSuite([
unittest.TestLoader().loadTestsFromTestCase(
Test_test_maya_util),])
output = os.path.join(os.environ['JCGSTOOLDIR'], 'build',
'testResult')
runner = xmlrunner.XMLTestRunner(output=output)
ret = runner.run(suite)
return ret
if __name__ == '__main__':
run()
22
• 全て JCGS Launcher がベース
• 強固な土台を作った上で派生させていくことが大事
• 自動処理システムを作ると人生が豊かになる(要出典)
• ムダなことをして働きたくない!!
まとめ
24
• 作ったけど使いこなせてないよ!!
–要素技術はガンガン使ってるけど。。。
• GUIが絡むとまだまだ面倒
• DCCツールの自動処理を更に推し進める
• リリースパッケージ自動テストシステム
課題 & Future work