Top Banner
究極のバッチフレームワーク(予定) (株)JCGS 痴山 紘史
26

究極のバッチフレームワーク(予定)

Jul 12, 2015

Download

Education

fumoto kazuhiro
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 究極のバッチフレームワーク(予定)

究極のバッチフレームワーク(予定)

(株)JCGS 痴山 紘史

Page 2: 究極のバッチフレームワーク(予定)

1

動機

Page 3: 究極のバッチフレームワーク(予定)

2

プログラマなら誰でも考えること

楽をするためならどんな

苦労も厭わない

Page 4: 究極のバッチフレームワーク(予定)

3

究極は、

ボタン一つで

全ての操作が

自動で行えるように する

Page 5: 究極のバッチフレームワーク(予定)

4

そのために

徹夜でがんばる!!

Page 6: 究極のバッチフレームワーク(予定)

5

いやまあ、一度作ればずっと

楽できるじゃないですか。

Page 7: 究極のバッチフレームワーク(予定)

6

事例紹介

Page 8: 究極のバッチフレームワーク(予定)

7 写真:Wikipedia

Page 9: 究極のバッチフレームワーク(予定)

8

JCGS Launcher

• アプリケーションランチャ

• プロジェクト固有の情報を管理

– サーバー名

– 命名規則

– 環境変数

– プラグイン

Page 10: 究極のバッチフレームワーク(予定)

9

JCGS Launcher

Core + UI

Page 11: 究極のバッチフレームワーク(予定)

10

コマンドライン版 JCGS Launcher

>python JCGSLauncherCmd.py testXML maya "2011 amd64 English"

Page 12: 究極のバッチフレームワーク(予定)

11

スタートアップスクリプトの実行も、共通のインターフェースを提供

Page 13: 究極のバッチフレームワーク(予定)

12

Page 14: 究極のバッチフレームワーク(予定)

13

Batch

• バッチ処理用フレームワーク

• オペレータをプラグインとして用意

• XMLでオペレータの処理順序を記述

• スタンドアロン/アプリケーション用ツールどちらでも動作

• JCGSLauncher同様、CoreとUIが分かれている

Page 15: 究極のバッチフレームワーク(予定)

14

Batch

• プロセスをまたいだバッチ処理が可能

• 3dsmax から Maya を起動したり

• 再帰的に Batch を実行する

Page 16: 究極のバッチフレームワーク(予定)

15

Page 17: 究極のバッチフレームワーク(予定)

16

アプリケーションが絡んだ

テストはものすごくメンドクサイ

Page 18: 究極のバッチフレームワーク(予定)

17

たとえば

Maya2009~2013、

Max2009~2013、

Softimage2009~2013、

32bit/64bit

全ての環境でテスト

Page 19: 究極のバッチフレームワーク(予定)

18

testSuite

• テストの中からアプリケーションを起動

• アプリケーション上でテストを実行

• 実行結果を元のテストに返す

• 成功/失敗だけでなく、traceback 情報も返す!!

→通常のテストと同じ感覚で扱える

Page 20: 究極のバッチフレームワーク(予定)

19

testSuite

• テストの中からアプリケーションを起動

• アプリケーション上でテストを実行

• 実行結果を元のテストに返す

• 成功/失敗だけでなく、traceback 情報も返す!!

Page 21: 究極のバッチフレームワーク(予定)

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()

Page 22: 究極のバッチフレームワーク(予定)

21

以上、実例でした。

Page 23: 究極のバッチフレームワーク(予定)

22

• 全て JCGS Launcher がベース

• 強固な土台を作った上で派生させていくことが大事

• 自動処理システムを作ると人生が豊かになる(要出典)

• ムダなことをして働きたくない!!

まとめ

Page 24: 究極のバッチフレームワーク(予定)

23

働くなら、価値を生む

部分で働きましょう!!

Page 25: 究極のバッチフレームワーク(予定)

24

• 作ったけど使いこなせてないよ!!

–要素技術はガンガン使ってるけど。。。

• GUIが絡むとまだまだ面倒

• DCCツールの自動処理を更に推し進める

• リリースパッケージ自動テストシステム

課題 & Future work

Page 26: 究極のバッチフレームワーク(予定)

25

Q&A