[MFC] ログをファイルに出力する

参考サイト

CStdioFile Class
https://msdn.microsoft.com/en-us/library/a499td6y.aspx

[C#] WinAppDriver/UIRecorderを試す

UI Recorderという、テスト自動化のためのツールが公開されたらしい。UI Recorderを使うと、操作手順をキャプチャしてC#のコードを生成してくれるみたい。試してみる。

Microsoft、オープンソースの自動UIテストスクリプトツール「WinAppDriver UI Recorder」を公開:自動UIテストのスクリプトを簡単に作成できる – @IT
http://www.atmarkit.co.jp/ait/articles/1806/22/news036.html

WinAppDriver/Tools/UIRecorder at master · Microsoft/WinAppDriver · GitHub
https://github.com/Microsoft/WinAppDriver/tree/master/Tools/UIRecorder

UI Recorderのビルド

1. リポジトリのクローニング

2. VS2017でソリューションファイルを開く
WinAppDriver\Tools\UIRecorder\WinAppDriverUIRecorder.sln

3. ビルド

ビルドしたらエラーが出た。

プロジェクトにアサインされているバージョンのWindows SDKがこのマシン上には存在しないので、ソリューションを右クリックして[Retarget solution]を選択し、存在するバージョンに変更する。

再ビルドして成功。

UI操作を記録する

Windowsの電卓を操作して記録してみる。

1. UI Recorderを実行する。
2. [Record]ボタンをクリックして電卓アプリを操作する。
3. 操作完了したら[Stop Recording]ボタンをクリックする。
4. [C# Code]タブに操作内容のC#コードが生成される。

自動化アプリを作成する

前処理 (WinAppDriverの起動やセッションの確立処理など)部分は参考サイトのコードをそのままコピペさせてもらって、それに続けてUIRecorderが生成したC#のコードを貼りつける。

1. プロジェクト作成 Console App (.NET Framework)
2. NuGetでAppium.WebDriver をインストールする
3. コーディング

XPathはそのままだとNot Foundになるので、以下のように編集した。

編集前

編集後

4. ビルドして実行

アプリが自動実行された。

参考サイト

WinAppDriver UI Recorderを試してみました。 | 初心者備忘録
https://www.ka-net.org/blog/?p=10504

[C#] WinAppDriverを試す

Windows Application Driverは、WindowsアプリケーションにおけるSeleniumライクなUIテストオートメーションをサポートするサービス。このサービスは、Windows 10 PCを使ったUniversal Windows Platform (UWP)及びClassic Windows (Win32)アプリのテストをサポートしている。

GitHubで公開されているので試してみる。

GitHub – Microsoft/WinAppDriver: Windows Application Driver
https://github.com/Microsoft/WinAppDriver

セットアップ

1. ダウンロード https://github.com/Microsoft/WinAppDriver/releases
2. インストール
3. 実行する C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe

電卓アプリを自動操作するサンプルを試す

1. VS2017でSamples\C#\CalculatorTest.slnを開く
2. Test > Windows > Test Explorer を選択
3. Run All を選択してテスト実行

電卓アプリが自動で動くのが確認できた。

参考サイト

WinAppDriver: Selenium に似た Appium のテストを使用して、Windows であらゆるアプリのテストを実行 – Visual Studio 日本チーム Blog
https://blogs.msdn.microsoft.com/visualstudio_jpn/2016/12/02/winappdrivertestanyappwithappiumsseleniumliketestsonwindows/

[C#] テスト自動化ライブラリFriendlyを試す

Windowsアプリのテスト自動化ツールを探していたらFriendlyというオープンソースのライブラリが見つかった。どういう仕組みで動くのか試してみたい。このライブラリに言及した記事を探したら以下がヒット。書かれたのは2014年と古い記事なので、この記事をなぞって自分で試してみる。

Friendlyエバンジェリストはミニスカサンタ – xin9le.net
http://blog.xin9le.net/entry/2014/12/22/000057

なお、本家リポジトリはこちら。

GitHub – Codeer-Software/Friendly
https://github.com/Codeer-Software/Friendly

SampleApp (ターゲットアプリ) 作成

– Windows Form App (.NET Framework)
– テスト用にプロパティとメソッドを追加

Form1.cs

TestApp (テストアプリ) 作成

– Console App (.NET Framework)
– Manage NuGet Packages…
– Codeer.Friendly by Codeer v.2.5.2
– Codeer.Friendly.Windows by Codeer v.2.9.0

Program.cs

ビルドして実行。TestAppからSampleAppのプロパティにアクセスしたり、メソッドを呼び出すことができた。そういう風にして外部アプリからターゲットアプリを操作して自動テストを行う仕組みらしい。

商用ツールにはテストケースをUIを使って定義できるものがあるが数十万円のコストがかかる。それに対して、Friendlyはテストケースをコーディングする手間がかかるけどオープンソースなので無料で使える。役立つシーンはありそうだ。

[EC-CUBE] テンプレートアップロード時の「ファイルのサイズが大きすぎます」対処法

新規テンプレートアップロード時に以下のメッセージが表示されるとき。

ファイルのサイズが大きすぎます。有効な最大サイズは2 MiBです。

html/.htaccess

参考サイト

ECCUBEでアップロードできない。upload_max_filesizeを設定する場所 | エス技研
https://blog.s-giken.net/183.html

[MySQL] phpMyAdminの接続先を変更する

参考サイト

MySQL : phpMyAdminの接続先を変更 | DN-Web64
http://www.dn-web64.com/archives/web/phpmyadmin_setting/

kakakikikekeのブログ: phpMyAdminで接続先のDBを変更する方法
https://kakakikikeke.blogspot.com/2012/11/phpmyadmindb.html

[Node.js] PM2リファレンス

バックグラウンドで実行中のnodeをkillしても勝手に生き返ってしまう。

なんでだーと思ったらPM2というNode.jsスクリプトをデーモン化するツールが使われていましたとさ。

参考サイト

node.js node.jsスクリプトをpm2でデーモン化する -でじうぃき
http://onlineconsultant.jp/pukiwiki/?node.js%20node.js%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92pm2%E3%81%A7%E3%83%87%E3%83%BC%E3%83%A2%E3%83%B3%E5%8C%96%E3%81%99%E3%82%8B

[Unix] sudoでパスが通っていないときの対処法

以下のような状況。

sudoのパスが通っていない。カレントユーザのパスを継承したければ以下のように設定する。

参考サイト

sudo「コマンドが見つかりません」PATHが初期化されているときの対処法 – シングスブログ
https://blog.thingslabo.com/archives/000395.html

何故かcommand not found が出るときの対処法 – cha-shu.log
http://cha-shu00.hatenablog.com/entry/2017/03/02/123659

[MySQL] 日時ファイルにダンプする

参考サイト

MySQLのバックアップ関連で最低限やるべき項目
https://qiita.com/yu_0105/items/528d627c35412c92c2ef

date コマンド | コマンドの使い方(Linux) | hydroculのメモ
https://hydrocul.github.io/wiki/commands/date.html