Silk4NET

TrueLog が生成されない

テストの実行後に TrueLog 結果ファイルが得られない場合、次を確認してください。

  • Silk4NET プロジェクトが作成されたバージョンと同じバージョンの Visual Studio で実行されている。たとえば、Visual Studio 2012 で作成された Silk4NET プロジェクトは、Visual Studio 2012 環境内でのみ実行できます。この制約は、コマンドラインや Team Foundation Server からプロジェクトが実行される場合にも適用されます。
  • テスト クラスに SilkTestClass 属性が含まれている。
  • TrueLog ファイルが作成される場所への書き込みアクセス権がある。

単体テスト アダプターが例外をスローしました...」というメッセージが Silk4NET に表示される

再生時に「単体テスト アダプターが例外をスローしました...」というメッセージを受け取った場合、Silk4NET プロジェクトが作成されたバージョンと同じバージョンの Visual Studio で実行されてるかどうか確認し得ください。たとえば、Visual Studio 2012 で作成された Silk4NET プロジェクトは、Visual Studio 2012 環境内でのみ実行できます。この制約は、コマンドラインや Team Foundation Server からプロジェクトが実行される場合にも適用されます。

前のバージョンの Visual Studio で作成した Silk4NET プロジェクトを新しいバージョンの Visual Studio に移行する方法

  • 前のバージョンの Visual Studio でソリューションを開きます。
  • Silk4NET プロジェクトの対象のフレームワークを適切な .NET Framework のバージョンに変更します。たとえば、プロジェクトを Visual Studio 2010 から Visual Studio 2012 に移行する場合は、対象のフレームワークを .NET Framework 4.5 に設定します。
  • Visual Studio の前のバージョンの UnitTestingExtension への参照を Silk4NET プロジェクトから削除します。たとえば、前のバージョンが Visual Studio 2010 の場合は、SilkTest.Ntf.VisualStudio2010.UnitTestingExtension への参照を Silk4NET プロジェクトから削除します。
  • Visual Studio の新しいバージョンへの参照を Silk4NET プロジェクトに追加します。たとえば、プロジェクトを Visual Studio 2012 に移行する場合は、SilkTest.Ntf.VisualStudio2012.UnitTestingExtension への参照を Silk4NET プロジェクトに追加します。

オブジェクト マップを使用していると、先頭がスラッシュになっていない既存のロケーターが機能しなくなる

クラス名のみを含み、スラッシュで開始していないロケーター (PushButton など) は、オブジェクト マップが存在する場合、機能しなくなります。この問題により、Silk Test 14.0 よりも前のバージョンの Silk Test で作成された既存のスクリプトが壊れる可能性があります。前の例では、スクリプトは次のエラーで失敗します:
Identifier 'PushButton' was not found in the Object Map.

クラス名以外のものも含む、より複雑なロケーター (PushButton[@caption=OK] など) の場合は、オブジェクト マップが存在する場合でも機能し続けます。

この問題を修正するには、そのようなロケーターの先頭に // を追加します。たとえば、次のコード内のロケーター PushButton が機能しなくなったとします:
PushButton button = mainWindow.find("PushButton");
その場合、コードを次のように変更してください:
PushButton button = mainWindow.find("//PushButton");

キーワード駆動テストの再生時に「64 ビット JVM を読み込めませんでした」というメッセージが表示される理由

Silk4NET 19.5 以降を使ってキーワード駆動テストを再生すると、次のメッセージが表示される場合があります。
64 ビット JVM を読み込めませんでした。テスト ランナーは 32 ビットを使用しています。詳細については、ヘルプの「既知の問題」>「Silk4NET」を参照してください。
この問題を解決するには、次のいずれかを行います。
  • プラットフォーム ターゲットを x64 に設定してテストをコンパイルします。
    1. ソリューション エクスプローラー で、プロジェクト ノードを右クリックします。
    2. プロパティ を選択します。
    3. プロパティ ウィンドウビルド タブを選択します。
    4. 全般 領域の プラットフォーム ターゲット リストから x64 を選択します。
  • 規定のプロセッサ アーキテクチャを 64 ビットに設定します。Visual Studio メニューの テスト > テスト設定 > 規定のプロセッサ アーキテクチャ から X64 を選択します。
  • キーワード駆動テストを 64 ビットのプラットフォーム ターゲットでコマンド ラインから実行するには、次のように入力します。
    vstest.console.exe <project name>.dll /platform:x64
  • Silk4NET を 32 ビット JVM で実行する場合は、SILK_KEYWORD_DRIVEN_JAVA_HOME 環境変数に使用する JVM を設定します。