2020-01-01から1年間の記事一覧

JavaScriptでE2Eテストを記述できる、TestCafeを試してみる

E2Eテストについてちょこちょこ調べていて、ブラウザ操作の自動化でSelenium以外に何かないかなと思っていたら、TestCafeが割と良さそうだったのでメモ。 環境 TestCafeとは インストール テスト実行 JavaScriptからの実行 テスト実装 fixtureとtest TestCon…

Kotlinの@JvmOverloadsをプライマリコンストラクタに書く方法

小ネタ。 Kotlinで、プライマリコンストラクタに @JvmOverloads アノテーションを付ける方法を知らないメンバーがいたのでメモ。 状況 対応 振り返り 状況 多いのは以下のような data class 。 data class DataClass(...) と書かれている場合、 @JvmOverload…

GaugeのJava実装を試してみる

前回の続き。 Taikoを使ったJavaScriptによるテスト実装でもろもろ躓いたので、Javaによるテスト実装を試してみる。 環境 JDKのバージョンについて プロジェクトの作成 pom.xmlの修正 Java実装 WebDriver用のヘルパークラス 実行フック データの保存 ステッ…

JavaScriptで毎回メソッド名を忘れる、insertAdjacentHTMLとinsertAdjacentElementについて

JavaScriptで、「文字列をElementにHTMLとして追加できて、 innerHTML じゃなくて、第1引数で追加位置を指定できるメソッド、名前なんだっけ?」と毎回なるのでメモ。 insertAdjacentHTML insertAdjacentElement 備考 insertAdjacentHTML developer.mozilla.o…

Markdownでテスト仕様書を書けるGaugeを試してみる

E2EテストやATDDについて調べていたら、 Markdown でテスト仕様書を書ける Gauge を知り、ちょっと試してみたのでメモ。 環境 Gauge とは インストール 使い方 プロジェクトの作成 Specification の実行 テスト結果の確認 Specification の記述 見出しとシナ…

WindowsでGradleのbootRunがCreateProcess error=206になるときの対応方法と、Kotlinで記述している場合の注意点

開発端末がmacOSだけのプロジェクトに、ひとりWindowsでアサインされた。 プロジェクト管理がGradle、フレームワークがSpring Boot、開発言語がJavaまたはKotlinだったので、さっそく gradlew.bat bootRun すると、 A problem occurred starting process 'co…

GradleでprocessResources時にシンボリックリンクを作成(Windows, macOS対応)

Spring Bootを使ったJavaプロジェクトで、 bootRun をしてから起動するまで数分かかっていた。 調べてみると、 processResources タスクで src/main/webapp/WEB-INF を build/build/resources/main/WEB-INF にコピーしていたが、 src/main/webapp/WEB-INF 配…

Windowsでシンボリックリンクを作るにはmklinkが使えるし、管理者権限なしでフォルダにリンクを張りたいならジャンクションでいいかも

会社で「Windowsだとシンボリックリンクが作れない」という話になった。 mklink で作れると話したら驚かれたのでメモ。 導入が Windowsでシンボリックリンクを作る | Developers.IO と全く同じだなぁ... 環境 mklink コマンド targetに相対パスを指定する際…

従業員数に応じた企業規模の分類(SMB,MM,GBなど)とその正式名称(たぶん)

IR資料などでたまに見かける、「SMB」といった従業員数に応じた企業の分類と、その正式名称が毎回わからなくなるのでメモ。 企業分類の例 分類ごとのSalesforceにおける人数と正式名称(仮) ESB SMB MM GB EBU その他の分類 振り返り 余談 企業分類の例 ビズ…

Javaでinstanceofの代わりに使えるClassクラスのメソッドはisInstanceとisAssignableFromだというメモ

タイトル通り。 使おうと思うたびに「 instanceof 演算子の代わりに使えるメソッドなんだっけ?」となるのでメモ。 環境 それぞれの使い方 instanceof 演算子 Class#isInstance(Object) Class#isAssignableFrom(Class) 注意点 振り返り 環境 OpenJDK 8 8.262.…

Groovyの名前付き引数(パラメータ)について

Groovy + Spockでユニットテストを書いているが、Groovyの名前付き引数・名前付きパラメータを知らないメンバーがいた。 なかなか特殊な仕様なのでメモ。 環境 仕様 コンストラクタの名前付き引数 メソッドやクロージャの名前付き引数 注意点 名前付き引数の…

Gitログからチームを可視化するツール、gilotの各種コマンド(log,plot,info,hotspot,hotgraph,author)をWindowsで試してみた

前回の続き。 試していなかった、 info , hotspot , hotgraph , author といったコマンドを試してみる。 環境 Windows 10 Pro 64bit Version 2004 Python 3.8.5 Git 2.28.0.windows.1 gilot0.2.4 gilotのアップデート 前回試してからgilotをアンインストール…

TypeScriptの、はてなふたつの演算子や、はてなドットの演算子は、JavaScriptの新しい構文だった

TypeScript 3.7以降で使える ?? 演算子。 || 演算子より厳密に undefined や null を判定してくれるので多用していたが、こいつの名前は何だろうと思って調べてみたところ、Nullish Coalescing Operator、日本語だとNull結合演算子というらしい。 ついでに、…

ファンティア(Fantia)からファンクラブに投稿された画像を一括ダウンロードするスクリプトを書いた

知人から、ファンティアのファンクラブの投稿画像を一括でダウンロードしたいと言われた。 ちょっと見てみると、どうも投稿されたページから一括でファイルをダウンロードできず、また投稿ページの画像をクリックして「オリジナルサイズを表示」リンクをクリ…

Google Nest Hubで一部のAMラジオが聞けなくなったが、言い方を変えたら聞けるようになった

備忘録。 Google Nest Hubに「TBSラジオを流して」と話しかけてTBSラジオを聞いていたが、2020/8/1になると突然YouTubeの動画が再生されるようになった。 微妙にハマったのでメモ。 状況 Google Nest Hubに「TBSラジオを流して」と音声コマンド入力すると、2…

Windows10でGitログからチームを可視化するツール、gilotを試してみた

少し前になるが、こちらの gilot の紹介を見て、ちょっと試してみた。 qiita.com Windows 10だと、環境設定などで少しつまづいたのでメモ。 環境 2020/7/8時点。 Windows 10 Pro/Home 64bit Version 1909, Python 3.8.3, Git 2.27.0 インストール pip でイン…

Vuexでよく見る波括弧を使った引数の代入は、分割代入というJavaScriptの新しい構文だった

Vuex の action の第1引数で、 method({ commit }) といった、波括弧を使ったちょっと気持ち悪い記述を見かける。 実際に渡される context から context.commit を抽出しているんだろうと思って何となく使っていたが、正確にはどういう機能なのかと思って調…

macOSでGradleを実行してもIDLEプロセス1つだけで進まなくなったら、ファイアウォールでブロックされているかもしれない

新しいMacBookを購入した人から、開発環境構築中に ./gradlew build がエラーになるとの相談を受けた。 地獄のようにハマったのでメモ。 状況 原因 対応 その後の問題と対応 振り返り 追記 状況 新しいMacBookにて、Gradleを使ったJavaプロジェクトで ./grad…

JavaクラスからTypeScriptのインターフェース定義を生成するtypescript-generator Maven/Gradleプラグインを試してみた

フロントエンドをTypeScriptで記述することとなり、リクエストやレスポンスで受け渡すデータもTypeScriptで型定義したいという要望がでてきた。 バックエンドはSpring Bootを使ったJavaアプリケーションで、ダブルメンテになると面倒。 JavaのクラスからType…

javax.jws.WebParamなどがコンパイルエラーになったらJava 11に更新されているかもしれない

周囲に突然Javaアプリケーションのコンパイルがエラーになる人がちらほら。原因はシンプルだったが、意図せず発生していたためメモ。 問題 Spring Bootを利用したアプリケーションが、macOSのPCでコンパイルできなくなる事例が発生。 Controllerのメソッド引…

UserScriptのURLからのインストールと自動更新させる方法

社内向けにちょこちょこUserScriptを書いているが、作成時や更新のたびに、メール添付したりSlackなどのチャットツールでソース流したりと、配布するのが面倒だった。 今回、更新頻度が高くなりそうなスクリプトを書くついでに、UserScript配布サイトのよう…

NumLockが解除されるのでAutoHotkeyで常時ON状態に固定する

会社支給のPCのNumLockが、意図せず解除されてしまう。 テンキーありのラップトップPCだが、BackSpaceとNumLockの間隔がほとんどなく、キーが小さいうえにキーストロークが浅い。理由としては何かのトラブルで勝手に解除されているとかではなく、単純にBackS…

GradleのテストがUP-TO-DATEの場合の再テスト実行方法とcleanについて

前回のように、調整でGradleの test タスク実行を繰り返していると、変更がない場合 UP-TO-DATE となって実行されない。 gradle clean test ではコンパイルからやり直しだし、いちいちテストを変更して再実行するのも面倒。手軽にテストを再実行する方法を調…

SpockのテストをグルーピングしGradleタスク化、指定されたタスクで条件判定して処理を切り分け

前回の続き。 アサインされたJavaプロジェクトではSpring Bootを使用しているが、ユニットテストではモックが使われていなかった。 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) でWebサーバーを起動し、 TestRestTemplate でControllerク…

Spockのwhen/then/whereで成功と例外の両方をテストする

Javaのユニットテストを書くとき、普段は例外が発生するパターンのテストを例外ごとに書き、それとは別に正常終了するテストを書いて、パラメータと結果の組み合わせをfixtureで渡している。 新しくアサインされたJavaプロジェクトでテストを書こうとしたら…

Windowsで使えるcURLいろいろ

Mac使いの人から、「WindowsじゃcURL使えないよね?」と聞かれたので、「最近のWindows 10ならcURLプリインストールされてますよ」と答えると驚かれた。 ほかにもいろいろな方法があるので、ざっと思いつくWindowsでのcURL使い方をメモ。 環境 Windows 10 Pro…

MySQLの初期化前にvalidate_password関連設定を変更するとエラーが発生する

前回インストールしたMySQL5.7を起動しようとすると [ERROR] --initialize specified but the data directory has files in it. Aborting. が発生。 エラーメッセージの通り、データディレクトリに何かファイルがあるのかと思ったが、調べてみると原因が違っ…

CentOS 7にMySQL 5.7をyumでインストール

CentOS 7にMySQL 5.7をインストールする機会があり、yumで入れたらどのバージョンが入るかと思ったら、MySQLが見つからない。 CentOS7からはMariaDBが標準になっているとか。ここ数年、Docker使ったりマネージドサービス使ったりで、知らなかった... MySQL用…

MySQLで不要なGRANT権限を削除する

MySQLのユーザーを確認していると、不要なGRANT権限が付与されたユーザーを発見。 念のため消しておこうと思ったが、ちょっと手間取ったのでメモ。 環境 MySQL v5.7.29。 状況 こんな感じのユーザーがいた。 mysql> SHOW GRANTS FOR 'user'@'host'; +-------…

Groovyのメジャーバージョンが3になっていた

Chocolateyでインストールしたパッケージを更新すると、Groovyがv3.0.0になっていた。 プレビュー版が出たのは2018年みたい。 GitHubのReleaseを見ると、v3.0.0は2020/2/7、v3.0.1が2/14にリリースされており、公式ページからはv3.0.1がダウンロードできた。…