概要‎ > ‎

TestAssistantへのプラグイン

!!new ジェネレータも作成、プラグインできるようになりました。
こちらも参照お願いします。


コントロール操作をラップしたクラスを作成した場合、
それをTestAssistantにプラグインしてマッピング時に表示したり、その後、スクリプト実行したりすることができます。
方法は簡単です。

コントロール操作のラッパーでサンプルにしたコードを少し変更します。
TestAssistantでのマッピング時に使用するコンストラクタを追加します。
①②③のタイプのコンストラクタで生成できる必要があります。
ネイティブウィンドウをターゲットにした場合は③は必要ありません。

using Codeer.Friendly;
using Codeer.Friendly.Windows;
using Codeer.Friendly.Windows.Grasp;
using System;
 
namespace CommonGui
{
    //System.Windows.Formsをラップ
    public class MyButton
    {
        AppVar core;
 
        public MyButton(AppVar src)
        {
            core = src;
        }
 
        //①ウィンドウ操作クラスを受け取る
        public MyButton(WindowControl src)
        {
            core = src.AppVar;
        }
 
        //②アプリケーション操作クラスと元の変数操作クラスを受け取る
        public MyButton(WindowsAppFriend app, IntPtr handle)
        {
            core = app["System.Windows.Forms.Control.FromHandle"](handle);
        }
 
        //③アプリケーション操作クラスと元の変数操作クラスを受け取る
        public MyButton(WindowsAppFriend app, AppVar src)
        {
            core = src;
        } 
 
        //Textプロパティーをラップ
        public string Text
        {
            get { return (string)core["Text"]().Core; }
            set { core["Text"](value); }
        } 

        //PerformClickメソッドをラップ
        public void PerformClick()
        {
            core["PerformClick"]();
        }
    }
}

このMyButtonを含むdllをコンパイルし、TestAssistantのexeと同一のフォルダに置きます。
ここではCommonGui.dllという名前でコンパイルしました。

[Program Files]/Codeer/TestAssistant/CommonGui.dll

次にTestAssistant以下のPluginフォルダにクラスの対応を記述したXMLファイルを置きます。
ファイル名称は何でも構いません。(拡張子はxmlである必要があります。)
ここではCommonGui.Plugin.xmlとします。

[Program Files]/Codeer/TestAssistant/Plugin/CommonGui.Plugin.xml

<?xml version="1.0"?>
<PluginInfo>
  <AssemblyString>CommonGui, Version=1.0.0.0, Culture=neutral</AssemblyString>
  <Company>株式会社Codeer</Company>
  <WebPage>http://www.codeer.co.jp/</WebPage>
  <NetTypePairs>
    <PluginClassPair>
      <TargetType>System.Windows.Forms.Button</TargetType>
      <PluginType>CommonGui.MyButton</PluginType>
    </PluginClassPair>
  </NetTypePairs>
</PluginInfo>


AssemblyString
アセンブリのフルネームです。
署名している場合は、パブリックキーの情報も含めてください。

Company
作者名称を書いてください。

WebPage
ヘルプを記載したWebサイトなどある場合はそのURLを書いてください。

NetTypePairs
.Netのタイプのペアリングを記述するブロックです。

PluginClassPair
ペアリングブロックです。複数記述可能です。

TargetType
対象のウィンドウの.Netのタイプフルネームかウィンドウクラス名称を記述します。

OperatorType
*これは以前はPluginTypeという要素でした。PluginTypeでも動作しますが、そちらは非推奨とさせてもらってます。
対象のウィンドウに対応したクラスのタイプフルネームです。

TestAssistantを起動して「情報」ボタンを押すと情報が表示されます。
サンプルは会社名、Webサイトを弊社のものにしたため、マージされて表示されていますが、別のものを指定すると、それもここに表示されます。


操作ウィンドウにも表示されました。


ネイティブウィンドウに関してもほぼ同様です。
dll、xmlファイルの配置は先ほどと同じです。
xmlの内容ではNetTypePairsではなくWindowClassPairsに書きます。

これはサンプルとしては、弊社の作成したCodeer.Friendly.Windows.NativeStandardControls
onigiri-soft様に作成していただいたOng.Friendly.FormsStandardControlsがあります。
ソースコード、テストコード、プラグインファイルが同梱されていますので、そちらを参照お願いします。
ネイティブより.Netのウィンドウの操作の方が簡単であるため、Ong.Friendly.FormsStandardControlsの方が理解しやすいと思います。

次項ではこのCodeer.Friendly.Windows.NativeStandardControlsを紹介させていただきます。