MPのご利用は計画的に

だいたい自分用のメモ

batファイルをMakefileのようにサブルーチン指定で実行する

概要 自分の開発環境はMacなのでmakeが初期状態から実行できるのですが、 チーム開発を行うときにWindowsな人がいることもありますよね。 MacでもWindowsでも環境構築をワンライナーで終わらせたいと思ったときに、 Makefileと同じような書き方をしつつ、コ…

ひとつのbuild.gradle.ktsファイルでマルチプロジェクトを構成したい

概要 複数ファイルで構成するサンプルはよく見かけるけど、1つのファイルで構成するサンプルを見かけなかったので作ってみました。 これが正解かはわかりません。 環境 ------------------------------------------------------------ Gradle 6.6.1 --------…

FlywayのmigrateでcleanOnValidationErrorを試す

概要 flywayのコマンドmigrateにあるcleanOnValidationErrorというオプションを使うとどうなるかのメモです。 今回はPostgresで試してます。 環境 Java 8 Maven(mvnw経由) 3.5.4 flyway-maven-plugin 5.2.1 Postgres Driver 42.2.5 どうやる? 今回はmavenを…

Kotlinでtestcontainers-javaをつかう

概要 Testcontainersってなに? プログラムからDockerコンテナを起動できるライブラリ 最近testcontainers-javaとJUnit5のjupiterへの親和性が高くなったらしいので試したメモです。 環境 Kotlin 1.3.10 JUnit-jupiter 5.3.1 Testcontainers-java 1.10.1 ど…

Bashでは'readonly'より'local -r'を使っていきたい

概要 Bashでスクリプトを書いている時に、関数内に閉じた形で読み取り専用の変数を宣言できないか調べたメモです。 環境 $ bash --version GNU bash, バージョン 4.4.23(1)-release (x86_64-apple-darwin17.5.0) readonlyはグローバル 変数を読み取り専用と…

DbSetupでPostgreSQLの範囲型とJSONデータ型を扱う

概要 テストでよく使うDbSetupで、PostgreSQLの範囲型とJSONデータ型をどう扱うのか試してみました。 環境 Kotlin 1.2.60 JUnit 5.2.0(jupiter) Maven 3.5.4 DbSetup 2.1.0 JSONデータ型 テーブルを準備 JSONデータ型をもったテーブルを作ります。 JSONデー…

PostgreSQLで日付の範囲型を使う

PostgreSQLの範囲型 PostgreSQLには範囲型という型が用意されています。 8.17. 範囲型 数値や日付の範囲型もありますが、今回は日時の範囲型であるtsrangeを使ってみます。 TABLEの作成 いつもと同じように、テーブルを作成するときの型にtsrangeを指定する…

KotlinとJUnit5とTestInstanceアノテーション

概要 JavaでJUnit5を使っているときに、KotlinだとBeforeAllとAfterAllはどうなるのだろうと試したメモです。 環境 Kotlin 1.2.60 JUnit 5.2.0(jupiter) 試したこと インスタンスメソッドでいい? インスタンスメソッドにBeforeAllやAfterAllアノテーション…

IntelliJ IDEA上でmvn-testをDebugするときはmaven-surefire-pluginが必要らしい

概要 mvn test中にBreakPointでとまらないなーと思って調べたメモです。 環境 IntelliJ IDEA 2018.2.2 (Ultimate Edition) どうすればいいか タイトルにも書いてありますが、maven-surefire-pluginを使います。 build pluginとして設定して、mvn実行時のオプ…

PostgreSQLでデフォルトの権限を設定する

コマンドはALTER DEFAULT PRIVILEGES 標準SQLにはないコマンドです。 USERに設定してみる 今回はDockerコンテナで環境を準備しました。 docker run -d \ --name postgres10\ -e POSTGRES_USER=postgres\ -e POSTGRES_PASSWORD=postgres\ postgres:10.4 コン…

JUnit5のTagアノテーションは便利そう だけど…

概要 JUnit5には@Tagというアノテーションがあって、テストをグルーピングして実行できると知った時のメモです。 環境 Kotlin 1.2.51 JUnit 5.2.0 JUnit4にもグルーピングはあった JUnit4では@Categoryだったものが@Tagに変わったようですね。 https://junit…

KotlinでJUnit5を使う

概要 KotlinとJUnit5を使うためのできるだけシンプルな構成を作ったときのメモです。 環境 Kotlin 1.2.51 JUnit 5.2.0(jupiter) Maven 3.5.4 まずはKotlinの準備 KotlinのReferenceに沿って設定すればOK。 今回はMavenを使っています。 https://kotlinlang.o…