(note: i’m not sure what you are doing with your extension, so the below is a guess based on thinking/remembering you were implementing a clojure-based changeset DSL.)
If you look at the main liquibase source, under the liquibase-integration-tests you will see how we test the changeSets in the core library. We basically have changelogs that contain the changesets that we want to test. I’m hoping to wrap it all up nicer for extensions to use, but have not gotten to it yet. Part of the issue is thinking through what sort of testing extensions of differet types (changelog parsers, databases, etc) would want to do.
For your extension, I would think you would want to do something similar where you create various changelog/changesets and execute them. I’ve found tests against the H2 database type run the fastest, and if you are primarily doing changeset parsing, you shouldn’t have to worry about database compatability.
Another option would be to test just the changelog parsing more from a unit testing layer. You could write tests that take a text string containing your closure dsl and run it through the ChangeLogParserFactory.getInstance().getParser(ext, accessor).parse() method and assert on the returned DatabaseChangeLog object.