Мы с моим партнером проводим ночные тесты на сервере сборки для нашего проекта.Мы используем CruiseControl.NET для запуска сервера, а тесты пишутся с использованием WatiN и NUnit .У нас CruiseControl.NET работает как сервис с доступом к рабочему столу через локальную системную учетную запись.Каждые несколько раз, когда мы запускаем сборку, некоторые тесты завершаются с ошибками, такими как:
Test: cfarmweb.tests.Views.GeneralRegressionTest.DuplicateUsernameTest
Type: Failure
Message: SetUp : System.Runtime.InteropServices.COMException : Creating an instance of the COM component with CLSID {0002DF01-0000-0000-C000-000000000046} from the IClassFactory failed due to the following error: 800704a6. TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
at WatiN.Core.IE.CreateNewIEAndGoToUri(Uri uri, IDialogHandler logonDialogHandler, Boolean createInNewProcess)
at WatiN.Core.IE..ctor(String url)
at cfarmweb.tests.Navigator.SiteNavigator..ctor(String browserName, Boolean visible) in c:\ccworkdir\CFarm\builddir\cfarmweb.tests\Navigator\SiteNavigator.cs:line 35
at cfarmweb.tests.Views.GeneralRegressionTest.MakeNavigator() in c:\ccworkdir\CFarm\builddir\cfarmweb.tests\Views\GeneralRegressionTest.cs:line 34
--TearDown
at WatiN.Core.Browser.OnGetNativeDocument()
at WatiN.Core.DomContainer.get_NativeDocument()
at WatiN.Core.Document.ContainsText(String text)
at cfarmweb.tests.Navigator.SiteNavigator.HasText(String target) in c:\ccworkdir\CFarm\builddir\cfarmweb.tests\Navigator\SiteNavigator.cs:line 213
at cfarmweb.tests.Navigator.SiteNavigator.SignOut() in c:\ccworkdir\CFarm\builddir\cfarmweb.tests\Navigator\SiteNavigator.cs:line 110
at cfarmweb.tests.Views.GeneralRegressionTest.DisposeNavigator() in c:\ccworkdir\CFarm\builddir\cfarmweb.tests\Views\GeneralRegressionTest.cs:line 123
Успех сборок не зависит от изменений всам код, поскольку у нас были сборки, ломаются или исправляются после изменений в частях программы, которые не связаны с тестами.
Мы оба новички в области тестирования программного обеспечения (и разработки в целом),но ничего, что мы нашли в Интернете об этой ошибке, похоже, не относится к нашей ситуации.Мы видели все, начиная с перезагрузки системы и заканчивая проблемами совместимости с Internet Explorer 8 и ошибками JavaScript, но ничего из того, что мы пробовали, не устранило проблемы.Одна из самых сложных частей заключается в том, что она не всегда воспроизводима.Как мы можем решить эту проблему?