2011-08-12 7 views
3

Windowsエクスプローラ拡張のGUIテストの自動化に取り組んでいます。 TortoiseSVNメニューのようなものを考えてください。コンテキストメニューでTortoiseSVN-> Show Logのようなことができるようにしたいと思います。Windowsエクスプローラシェル拡張の自動GUIテスト

可能であれば私はRubyソリューションを好んでいますが、言語に依存しないと思っています。

私はthisをウェブ上に見つけましたが、それは近くにありますが、私がしたいことはしません。いくつかの非カスケードメニューのデフォルトオプションしかないようで、シェル拡張をサポートしていません。

ご意見をいただければ幸いです。

答えて

2

AutoItX3をご覧ください。 私はあなたが望むことをするためにそれを得ることができるかもしれないと思います。

あなたはOLE経由のRubyでそれをインタフェースすることができます。
http://actsasbuffoon.wordpress.com/2008/12/30/introduction-to-autoitx3/

EDIT

を私はちょうど私がここにエクスプローラのコンテキストメニューに入った方法を追加します、多分誰かが取得する方法を見つけ出すことができますさらに。私はちょうどそれがだろういかに難しいか見しようとしているビットの周りに遊んでいた:

require 'win32ole' 

shell = WIN32OLE.new('Shell.Application') 
folder = shell.NameSpace("D:\\") 
files = folder.Items 
file = nil 

# Search for one specific file "test.rb" 
files.each { |f| file = f if f.Name == "test.rb" } 

# List all items in the context menu of test.rb 
file.Verbs.each { |v| puts v.Name } 

# At this point I ran out of ideas and couldn't figure out 
# how to traverse into the submenus of the context menu... 
+0

AutoItのコンテキストメニューでシェル拡張機能とのやり取りの例を挙げることはできますか? C:\ foo.txtを右クリックしてTortoiseSVN-> Show Log(foo.txtがバージョンコントロールになっていることを前提としています)を実行します。提供された例のほとんどは、操作ではなくGUI作成のようです。 – peakxu

+0

@peak - 申し訳ありません、私はそれを具体的に行う方法がわかりません。私はちょうど 'WIN32OLE'でちょっと遊んでコンテキストメニューから項目にアクセスしましたが、私はサブメニューに入る方法を理解することができませんでした。 – Casper

+0

AutoItへのリンクありがとうございます。私はまだそれを理解していないが、それはかなり興味深い。 – peakxu

1

あなたはルビーを使用して、この方法に興味があるかもしれません... win32-autoguiと呼ばれるルビーの宝石を経由して。これは、Windows GUIアプリケーションをテストするためのフレームワークを提供します。 RubyツールRSpecとCucumberと組み合わせると、強力なテストフレームワークが得られます。

関連する問題