[Grails] マルチテナント環境での試験

Grails 3.3.11 でやってます。

シングルDBのマルチテナント
ここが参考になるで、参考しながら作成していたのですが、Unit試験が通らない。

以下のようなエラーが出る

ガイドにあるように、
Specification -> HibernateSpec に変更しただけだとだめ。
ガイドは、ControllerUnitTest を implements しているが私のテストは、Service の試験。

なので、GrailsWebUnitTest を implements した。

を、

しかし、まだまだエラーが。

なんか、Transaction 系ね。
というわけで、 create-integration-test で生成されたものをそのまま使っていたが、@Rollback の記載を取ったら動いた。

ちなみに、Rollback は試験の HibernateSpec により、試験毎に rollback されるので@Rollback は不要。

挙動を変えるには、isRollback() を Override して、false を返せば rollbackされない

Service だけではく、Domain の試験でもこの方法で試験可能。

ただ、Domain の試験、MultiTenancyだと、unique が試験できなくなる。
これを解決するのは諦めた。




[grails] database migration でのエラー

環境

grails : 3.3.5
database-migration : 3.1.0.RC1

現象

起動時に以下のエラー

解決方法

build.gradle に以下の文言を入れ忘れていただけ

ちゃんと説明されていたね。