Моя проблема в том, что я не могу получить простой тест WatiN для надежной работы на моей машине разработки под управлением Windows Server 2008 и IE8.
Я видел пару хороших сообщений об этом, но у меня все еще есть проблемы. Вот сообщения:
Шаги в первой статье, казалось, помогли (закомментируйте ":: 1" в моем файле хостов, поместите мои сайты на надежные сайты и убедитесь, что у моего app.config есть "STA", и он установлен на "копировать, если новый", но они не помогли надежно. Я попробовал код из второго примера, надеясь, что это поможет, но это не так. Я использую версию WatiN версии 2.0 beta 1.
Мой код NUnit выглядит следующим образом:
protected Browser Browser { get; set; }
[TestFixtureSetUp]
public void SetupPriorToTestsInThisFixture()
{
Browser = new IE();
Browser.GoTo(Constants.SiteCollectionUrl);
}
[TestFixtureTearDown]
public void TearDownAfterTestsInThisFixture()
{
if (Browser != null)
{
Browser.Dispose();
}
}
[Test]
public void WaterThroughThePipes()
{
Link link = Browser.Link(Find.ByText("Calendar"));
bool exists = link.Exists;
Assert.That(exists, Is.True, "Could not find 'Calendar' link.");
}
То, что я вижу, это то, что иногда (хотя и редко) мой тест проходит. Иногда утверждение терпит неудачу (существует = ложь), иногда я получаю тайм-аут при попытке открыть браузер, а иногда я получаю сообщение об ошибке, пытающееся получить доступ к link.Exists.
Ссылка на доступ к ошибкам. Exists выглядит так:
MyFixture.WaterThroughThePipes: System.Runtime.InteropServices.COMException: интерфейс неизвестен. (Исключение из HRESULT: 0x800706B5)
Теперь я не могу воспроизвести ошибку тайм-аута, поэтому я не могу представить, что на данный момент (хотя это всегда происходило все время).
Я стараюсь видеть разные результаты при запуске в режиме отладки, а не в режиме отладки.
Для того, что стоит, Firefox 3.0.6 никогда не работал у меня. Я бы хотел, чтобы он работал, но IE должен работать независимо. Вот ошибка, которую я получаю с Firefox.
MyFixture (TestFixtureSetUp): WatiN.Core.Native.Mozilla.FireFoxException: не удается подключиться к серверу jssh, убедитесь, что вы правильно установили плагин jssh.xpi ---- > System.Net.Sockets.SocketException: соединение не может быть выполнено, потому что целевой компьютер активно отклонил его 127.0.0.1:9997
Любые идеи? Я действительно не хочу возвращаться к Селену (был там, сделал это), но мне, возможно, придется.