我有2个.NET Core测试项目,一个用于集成,另一个用于单元测试。两者都使用xUnit。
单元测试通过正常但是当我运行集成测试时 - 这必然更复杂 - 我得到了这个:
------ Run test started ------
[xUnit.net 00:00:01.1418141] Starting: Blah.Tax.Service.Integration.Test
[xUnit.net 00:00:01.4896056] Blah.Tax.Service.Integration.Test.DataServiceTests.Can_Create_Client [FAIL]
[xUnit.net 00:00:01.4916354] System.TypeInitializationException : The type initializer for 'log4net.Core.LoggerManager' threw an exception.
[xUnit.net 00:00:01.4918048] ---- System.MethodAccessException : Attempt by method 'log4net.Core.LoggerManager.RegisterAppDomainEvents()' to access method 'System.AppDomain.add_ProcessExit(System.EventHandler)' failed.
[xUnit.net 00:00:01.4932551] Stack Trace:
[xUnit.net 00:00:01.4951484] at log4net.Core.LoggerManager.GetLogger(Assembly repositoryAssembly, Type type)
[xUnit.net 00:00:01.4953039] ----- Inner Stack Trace -----
[xUnit.net 00:00:01.4953848] at log4net.Core.LoggerManager.RegisterAppDomainEvents()
[xUnit.net 00:00:01.4954587] at log4net.Core.LoggerManager..cctor()
[xUnit.net 00:00:01.5424882] Finished: Blah.Tax.Service.Integration.Test
========== Run test finished: 1 run (0:00:02.8672427) ==========
尝试连接DynamoDB时,集成测试失败。
我没有对log4net
的任何引用,所以我猜它来自另一个包。
我确实发现这篇文章(https://github.com/Microsoft/vstest/issues/632)听起来很相似,但我却难以接受。
有谁能建议我如何追查问题?
似乎每个Visual Studio版本都会破坏单元测试。