diff --git a/helper/resource/testing.go b/helper/resource/testing.go index 23af81096..5f08c2a3f 100644 --- a/helper/resource/testing.go +++ b/helper/resource/testing.go @@ -354,21 +354,15 @@ func Test(t TestT, c TestCase) { // Any errors are stored so that they can be returned by the factory in // terraform to match non-test behavior. func testProviderFactories(c TestCase) (map[string]terraform.ResourceProviderFactory, error) { - ctxProviders := make(map[string]terraform.ResourceProviderFactory) - + ctxProviders := c.ProviderFactories // make(map[string]terraform.ResourceProviderFactory) + if ctxProviders == nil { + ctxProviders = make(map[string]terraform.ResourceProviderFactory) + } // add any fixed providers for k, p := range c.Providers { ctxProviders[k] = terraform.ResourceProviderFactoryFixed(p) } - // call any factory functions and store the result. - for k, pf := range c.ProviderFactories { - p, err := pf() - ctxProviders[k] = func() (terraform.ResourceProvider, error) { - return p, err - } - } - // reset the providers if needed for k, pf := range ctxProviders { // we can ignore any errors here, if we don't have a provider to reset