// Package moduletest contains the support code for some experimental features
// we're using to evaluate strategies for having an opinionated approach to
// testing of Terraform modules.
//
// At the moment nothing in this module is considered stable, so any features
// that are usable by end-users ought to emit experiment warnings saying that
// everything is subject to change even in patch releases.
package moduletest
