問題タブ [white-framework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
log4net - log4net が私の DLL とサード パーティの DLL の両方で構成されている場合、log4net は予想される 1 つではなく 2 つのログ ファイルを作成します。
私のソリューションには、クラス ライブラリ タイプの 2 つのプロジェクトがあります。
- アクション: ホワイト (MS UI オートメーション上の UI オートメーション フレームワーク) を使用して記述されたアクションを含むプロジェクト
- テスト: MbUnit を使用して、テスト フィクスチャとテスト メソッドを使用してプロジェクトを作成します。
両方のプロジェクトに log4net を使用してログを追加することにしました。私が使用しているlog4net構成は以下のとおりです。
実行ごとに 1 つのファイルが作成されるようにします (フィクスチャ スイートの実行ごとに 1 つ)。ただし、次の 2 つのファイルが作成されます。
Automation_27.01.13_07.33.53.log
Automation_27.01.13_07.33.53.log.1
調査の結果、ログが同じ場所で毎回 2 番目のファイルに吐き出されることがわかりました。アクションに White からのタイプが含まれている場合に呼び出されます。ホワイトも内部でlog4netを使用しているために発生しているようです。
だから、私は状況が次のようなものだと思います:
- log4netを初期化するクラスがあります
- フィクスチャスイートを開始します
- テスト プロジェクトには、1st を実行するクラスがあり、これには以下が含まれます。
Log.Info("...")
- ログファイルが作成されます
- までテキストが追加されます。
- ホワイトの型を参照する最初のアクションは、tests プロジェクトから実行されます
- この段階で、新しいファイルが作成されます
- White Dllsの内部にlog4netを初期化するための別の呼び出しがあり、内部でハードコードされているために発生すると思います
White (サードパーティの dll) のコードを変更せずにログの分割を防ぐ方法はありますか?
c# - White UI Automation C#のWhite.Coreアセンブリの読み込みに失敗する
簡単な例を実行してWindows電卓を起動し、いくつかのことを実行しようとしました。
白:Windowsアプリケーション用のUIオートメーションツール
上記のリンクのSaldyは古いので、別の例のコードを採用しました。
テスター向けのホワイトWindowsUIオートメーション入門チュートリアル
私の単純なコードは次のようになります。
参照も追加しましたWhiteCore.dll
。
それでもエラーが発生します:
警告:参照されているアセンブリ「White.Core」は、現在ターゲットになっているフレームワーク「.NETFramework」にない「System.Web、Version = 4.0.0.0、Culture = neutral、PublicKeyToken=b03f5f7f11d50a3a」に依存しているため解決できませんでした。 、Version = v4.0、Profile=Client"。ターゲットフレームワークにないアセンブリへの参照を削除するか、プロジェクトの再ターゲットを検討してください。
したがって、参照White.Core
が欠落しているため、ロードに問題がありSystem.Web
ます。
何か案は?これは私の.NETインストールの問題ですか?
解決策を見つけました:
System.Webアセンブリが.net4.0バージョンに見つかりません
.NETFrameworkプロファイルを.NET4.0Clientから.Net4.0(フル)に変更する必要があります。
wpf - UI オートメーションは本当に WPF アプリケーションのテストに適しているのでしょうか?
UI テストの自動化について話すとき、会話は常に UI オートメーションに行き着きます。それが唯一の選択肢ですか?
個人的には、主な理由の 1 つで、複雑さという理由で好きではありません。あらゆるタイプのアプリケーションに対応できるように設計されています。そのような普遍性は決してタダではありません。UIA は、抽象化の別のレイヤーとかなり複雑な API を導入します。標準パターンは限定されています。カスタム コントロールのサポートには、多くのコーディングが必要です。なぜ誰かがそれを良い選択肢だと考えるのだろうか?
WPF には、UI が視覚要素の階層ツリーである、優れた非常に豊富な抽象化があります。これらの要素は、多くのメソッド、イベント、およびプロパティを公開します。ツリーは、さまざまな参照方法をサポートしています (たとえば、相対ソース構文)。そして、UIA でこれらすべての力を失います。何のために?古い学校のアプリやウェブとの互換性のためですか? まあ、現実的に、誰がそれを必要とするでしょうか? すべての取引のジャックは、誰のマスターでもありません。
Snoop のようなツールは、実行中のアプリケーションに自分自身を挿入し、それを完全に制御できます。コントロール プロパティの値を変更し、イベントを発生させることができます。それで十分ではないでしょうか?いいえ。マウスとキーボードを使用して、ユーザーが行うように、テストで UI とやり取りする必要があります。しかし、それは解決できる別の問題です。
それで、UIA の楽しさについて、私が得られない何かがあるのだろうか?
white-framework - Java からホワイト UI を実行する
Java から White UI Automation ツールを呼び出す方法はありますか? 私はすでに Java フレームワークを持っていますが、Silverlight アプリケーションを処理する必要があります (これはレガシー コードであり、開発者はそれをスクリプト可能にしていません)。このために別のワークスペース/テクノロジーを維持したくありません。Java コード内から White UI または基になる Windows UI Automation を呼び出す方法はありますか?
c# - C# ホワイト UI オートメーション: SWT ウィンドウが見つかりません
私はUI 自動化に White を使用していますが、Java で作成されたアプリに出会うまでは問題なく動作していました。その場合、ウィンドウが見つかりません。デスクトップからすべての Windows を取得すると、探しているウィンドウの名前が表示されます。
これは機能していますが、実行中のプロセスをアタッチしてそのウィンドウを取得しようとすると、何も表示されず、リストは空になります:
これは、メイン ウィンドウを見つけるコードです。
表示されるエラー: 追加情報: 5000 ミリ秒待機した後、プロセス 7396 で SearchCriteria Name=HP Service Manager Client のウィンドウが見つかりませんでした
VisualUIAVerify で Window を確認でき、その名前が正しいことがわかります。動作していないアプリはこれだけです。IE、Firefox などはすべて正常に動作しています。メイン ウィンドウは常に特定できますが、今回はまったくウィンドウが見つかりません。
誰かがなぜこれを行っているのかを説明し、この問題を解決する (または回避策を見つける) のを手伝ってくれるのではないかと思います。よろしくお願いします。