隔离和/或非并行模式似乎无法正常工作。使用TFS 2017版本15.117.26714.0。
我们在晚上运行功能测试,我们有一些相互矛盾的静态方法。我们使用SQL CE,然后创建临时数据库文件,然后执行sql脚本。
测试同时运行,一些静态对象正在越过并使用另一个测试的数据库文件。如何让这些测试并行运行,以免发生这些冲突?
单元测试1 - 创建一个临时文件夹和临时数据库w /唯一GUID(下面的日志文件中的cc4b3035-c4d0-48c4-92f6-15ccf3307cd7)
它做了很多东西 最后,它通过删除数据库进行清理 单元测试2 - 创建自己的临时文件夹& db w /唯一GUID(下面的日志文件中的22842bcb-621a-46f5-84c4-df82b22a7dca)
它正在做它的东西,但是然后db查询使用来自Unit Test 1的db路径并抛出异常cos单元测试1必须已经完成并删除它的db: System.Data.SqlServerCe.SqlCeException:路径无效。检查数据库的目录。 [Path = D:\ agent1_work_temp cc4b3035-c4d0-48c4-92f6-15ccf3307cd7 \ DB.sdf]
设置为在服务器上单独运行而不是并行: https://imgur.com/0QXdSG8 在RunSettings中也做到了这一点,但不要认为这有很大的作用: 0
日志文件是186 MB,这里不会附加。这里有相关信息:(如果你真的想要它让我知道可以拉上它等。)
单元测试#1(此次由于无关原因而失败) 2017-10-20T10:08:11.6808584Z导入ImportDefaultMixedAnimalHPTest失败 2017-10-20T10:08:11.6808584Z错误信息: 2017-10-20T10:08:11.6808584Z测试方法Cuattro.Tests.Misc.DatabaseFunctionalTests.CreateDatabaseTests.ImportDefaultMixedAnimalHPTest引发异常: 2017-10-20T10:08:11.6808584Z System.Exception:ImportWarningAttentionRequest WarningImportingHangingProtocolItem 2017-10-20T10:08:11.6808584Z堆栈追踪: 2017-10-20T10:08:11.6808584Z在D:\ agent1_work \ 2 \ s \ Dev \ 20170305_MD_4.4 \ Tests \ Misc \ DatabaseFunctionalTests \ CreateDatabaseTests中的Cuattro.Tests.Misc.DatabaseFunctionalTests.CreateDatabaseTests.ImportDefaultHPCore(HangingProtocolImportFile hangingProtocolImportFile)。 cs:第123行 2017-10-20T10:08:11.6808584Z在D:\ agent1_work \ 2 \ s \ Dev \ 20170305_MD_4.4 \ Tests \ Misc \ DatabaseFunctionalTests \ CreateDatabaseTests.cs中的Cuattro.Tests.Misc.DatabaseFunctionalTests.CreateDatabaseTests.ImportDefaultMixedAnimalHPTest()中:第57行
2017-10-20T10:08:13.9621426Z调试跟踪: 2017-10-20T10:08:13.9621426Z Cuattro.Tests.Misc.DatabaseFunctionalTests.CreateDatabaseTests:2017-10-20 05:02:42,347 DEBUG(11) - ServiceLocatorHelper.CreateAndInitContainer() 2017-10-20T10:08:13.9621426Z Cuattro.Common.IOHelper:2017-10-20 05:02:53,629 DEBUG(11) - GetTempFolder:D:\ agent1_work_temp cc4b3035-c4d0-48c4-92f6-15ccf3307cd7 < / EM> 2017-10-20T10:08:13.9621426Z创建临时文件夹:D:\ agent1_work_temp cc4b3035-c4d0-48c4-92f6-15ccf3307cd7 ,目录存在:真
... 2017-10-20T10:08:45.5563686Z Cuattro.Misc.SqlCe.SqlCeDatabaseAdmin:2017-10-20 05:08:04,305 DEBUG(11) - 关机 2017-10-20T10:08:45.5563686Z Cuattro.Misc.SqlCe.ExtendedSqlCeDatabase:2017-10-20 05:08:04,305 DEBUG(11) - CloseSharedConnection 2017-10-20T10:08:45.5563686Z Cuattro.Tests.Misc.DatabaseFunctionalTests.ServiceLocatorHelper:2017-10-20 05:08:04,368 DEBUG(11) - 从appContext删除临时文件夹:D:\ agent1_work_temp cc4b3035- c4d0-48c4-92f6-15ccf3307cd7
因缺少文件而失败的单元测试#2:
2017-10-20T10:08:45.5563686Z导入ImportDefaultHumanHPTest失败 2017-10-20T10:08:45.5563686Z错误信息: 2017-10-20T10:08:45.5563686Z测试方法Cuattro.Tests.Misc.DatabaseFunctionalTests.CreateDatabaseTests.ImportDefaultHumanHPTest引发异常: 2017-10-20T10:08:45.5563686Z System.Data.SqlServerCe.SqlCeException:路径无效。检查数据库的目录。 [Path = D:\ agent1_work_temp cc4b3035-c4d0-48c4-92f6-15ccf3307cd7 \ DB.sdf]
2017-10-20T10:08:45.5563686Z调试跟踪: 2017-10-20T10:08:45.5563686Z Cuattro.Tests.Misc.DatabaseFunctionalTests.CreateDatabaseTests:2017-10-20 05:08:11,665 DEBUG(11) - ServiceLocatorHelper.CreateAndInitContainer() 2017-10-20T10:08:45.5563686Z Cuattro.Common.IOHelper:2017-10-20 05:08:11,665 DEBUG(11) - GetTempFolder:D:\ agent1_work_temp * 22842bcb-621a-46f5-84c4-df82b22a7dca * 2017-10-20T10:08:45.5563686Z创建临时文件夹:D:\ agent1_work_temp * 22842bcb-621a-46f5-84c4-df82b22a7dca *,dir存在:True