diff --git a/src/Verify.Tests/PluginConventionTests.cs b/src/Verify.Tests/PluginConventionTests.cs index 7cafa4803..bd6c564ba 100644 --- a/src/Verify.Tests/PluginConventionTests.cs +++ b/src/Verify.Tests/PluginConventionTests.cs @@ -22,6 +22,10 @@ public void TryGetType() public void GetTypeName(string assemblyName, string expectedTypeName) => Assert.Equal(expectedTypeName, VerifierSettings.GetTypeName(assemblyName)); + [Fact] + public void TryGetTypeNullAssembly() => + Assert.Throws(() => VerifierSettings.TryGetType("Verify.BadAssemblyName.dll", out _)); + [Fact] public void InvokeInitialize() { diff --git a/src/Verify/VerifierSettings_PluginConvention.cs b/src/Verify/VerifierSettings_PluginConvention.cs index 5cfeccb49..d65ee8d11 100644 --- a/src/Verify/VerifierSettings_PluginConvention.cs +++ b/src/Verify/VerifierSettings_PluginConvention.cs @@ -51,8 +51,13 @@ internal static bool TryGetType(string file, [NotNullWhen(true)] out Type? type) return false; } #pragma warning disable CS0618 - var assembly = Assembly.LoadWithPartialName(assemblyName)!; + var assembly = Assembly.LoadWithPartialName(assemblyName); #pragma warning restore CS0618 + if (assembly == null) + { + throw new($"Could not load assembly '{assemblyName}'."); + } + var typeName = GetTypeName(assemblyName); type = assembly.GetType(typeName); return type != null;