ApprovalTests.Net
ApprovalTests.Net copied to clipboard
Support for NUnit 4.x
Hi, I really appreciate your work done in delivering such a great library for the approval testing, but I would like to ask for any plans around the support of the NUnit 4.x in the Approval Tests 7.x version?
There were some breaking changes in the NUnit 4.x and some of the reporters are not able to work correctly (with the NUnit 4.x), e.g.: The TfsVnextReporter during the unit tests on the Azure DevOps (and locally) is returning an error about missing method, when the approval tests are failing
Error Message:
System.MissingMethodException : Method 'NUnit.Framework.Assert.AreEqual' not found.
Stack Trace:
at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
at System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args)
at ApprovalTests.Reporters.TestFrameworks.AssertReporter.InvokeEqualsMethod(Type type, String[] parameters) in C:\projects\approvaltests-net\src\ApprovalTests\Reporters\TestFrameworks\AssertReporter.cs:line 49
at ApprovalTests.Reporters.TestFrameworks.AssertReporter.AssertEqual(String approvedContent, String receivedContent) in C:\projects\approvaltests-net\src\ApprovalTests\Reporters\TestFrameworks\AssertReporter.cs:line 38
at ApprovalTests.Reporters.TestFrameworks.AssertReporter.AssertFileContents(String approved, String received) in C:\projects\approvaltests-net\src\ApprovalTests\Reporters\TestFrameworks\AssertReporter.cs:line 29
at ApprovalTests.Reporters.TestFrameworks.AssertReporter.Report(String approved, String received) in C:\projects\approvaltests-net\src\ApprovalTests\Reporters\TestFrameworks\AssertReporter.cs:line 14
at ApprovalTests.Reporters.FirstWorkingReporter.Report(String approved, String received) in C:\projects\approvaltests-net\src\ApprovalTests\Reporters\FirstWorkingReporter.cs:line 24
at ApprovalTests.Reporters.ContinuousIntegration.ContinuousDeliveryUtils.ReportOnServer(String approved, String received) in C:\projects\approvaltests-net\src\ApprovalTests\Reporters\ContinuousIntegration\ContinuousDeliveryUtils.cs:line 12
at ApprovalTests.Reporters.ContinuousIntegration.TfsVnextReporter.Report(String approved, String received) in C:\projects\approvaltests-net\src\ApprovalTests\Reporters\ContinuousIntegration\TfsVnextReporter.cs:line 10
at ApprovalTests.Reporters.FirstWorkingReporter.Report(String approved, String received) in C:\projects\approvaltests-net\src\ApprovalTests\Reporters\FirstWorkingReporter.cs:line 24
at ApprovalTests.Approvers.FileApprover.ReportFailure(IApprovalFailureReporter reporter) in C:\projects\approvaltests-net\src\ApprovalTests\Approvers\FileApprover.cs:line 57
at ApprovalTests.Core.Approver.Verify(IApprovalApprover approver, IApprovalFailureReporter reporter) in C:\projects\approvaltests-net\src\ApprovalTests\Core\Approver.cs:line 13
at ApprovalTests.Approvals.Verify(IApprovalApprover approver, IApprovalFailureReporter reporter) in C:\projects\approvaltests-net\src\ApprovalTests\Approvals.cs:line 58
at ApprovalTests.Approvals.Verify(IApprovalWriter writer, IApprovalNamer namer, IApprovalFailureReporter reporter) in C:\projects\approvaltests-net\src\ApprovalTests\Approvals.cs:line 45
at ApprovalTests.Approvals.Verify(IApprovalWriter writer) in C:\projects\approvaltests-net\src\ApprovalTests\Approvals.cs:line 104
at ApprovalTests.Approvals.VerifyWithExtension(String text, String fileExtensionWithDot, Func`2 scrubber) in C:\projects\approvaltests-net\src\ApprovalTests\Approvals.cs:line 151
at ApprovalTests.Approvals.Verify(String text, Func`2 scrubber) in C:\projects\approvaltests-net\src\ApprovalTests\Approvals.cs:line 139
There is a workaround for this issue - disable the front loaded reporters
using ApprovalTests.Reporters;
[assembly: FrontLoadedReporter(typeof(ReportWithoutFrontLoading))]
but it would be probably better (and easier) to provide support for NUnit 4.x? What do you think? 😃