Моя проблема в том, что я не могу получить простой тест WatiN для надежной работы на моей машине для разработки под управлением Windows Server 2008 и IE8.
Я видел пару хороших сообщений на эту тему, но у меня все еще есть проблемы. Вот сообщения:
Похоже, что шаги в первой статье помогли (закомментируйте «:: 1» в моем файле hosts, поместите мои сайты в надежные сайты и убедитесь, что мой app.config имеет «STA» и имеет значение «STA») "скопируйте, если новее", но они не помогли надежно. Я попробовал код из второго примера, надеясь, что это поможет, но это не помогло. Я использую бета-версию WatiN версии 2.0 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.");
}
Что я вижу, так это то, что иногда (хотя и редко) мой тест проходит. Иногда утверждение не выполняется (существует = false), иногда я получаю тайм-аут при попытке открыть браузер, а иногда я получаю сообщение об ошибке при попытке получить доступ к 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
Есть идеи? Я действительно не хочу возвращаться в Selenium (был там, сделал это), но мне, возможно, придется.