我们有一个NUnit测试项目,大约有1000个测试.该项目包含主要用于自定义WPF控件的高级组件测试.我们的构建服务器(TeamCity)上的测试过程经常失败:
InvalidOperationException"已释放LocalDataStoreSlot存储"
mscorlib.dll!System.LocalDataStore.GetData(System.LocalDataStoreSlot slot)
mscorlib.dll!System.Threading.Thread.GetData(System.LocalDataStoreSlot slot)
WindowsBase.dll!System.Windows.Interop.ComponentDispatcher.CurrentThreadData.get()...
测试包含[RequiresSTA]属性,Window.Show(),Dispatcher操作等...所以它绝对不是一个常规的单元测试项目.
失败看起来完全是随机的,我们有80%的可能性进行修订,但大部分时间都没有发生.生产代码中的绝对神秘,有时简单的更改 - 如xaml代码中的更改样式 - 触发失败,然后生产代码中的下一个更改修复它.
这种特定的随机故障使得我们的开发团队有时会非常不安,我们的扩展构建系统因此失败而受到严重阻碍.
我们很少用nunit-console.exe在本地运行项目来重现它.
你们有没有见过这样的测试过程失败?任何提示如何解决此问题将受到高度赞赏.
谢谢
您如何看待以下断言?
Assert.IsTrue(condition1 && condition2);
Run Code Online (Sandbox Code Playgroud)
我在审查会议期间想出了这种类型的断言.据我所知,在断言中使用&&运算符不是一个好习惯.我想知道其他人的想法?值得一提的是,这是下一次审查会议期间的问题吗?或者这仅仅是个人偏好?