Pergunta

Eu adicionei alguns simples testes WatiN para nosso aplicativo hoje para verificar se um valor de cookie é armazenado corretamente.

Os testes passam localmente em todas as máquinas na equipe. No entanto, quando CruiseControl executa os testes em nosso servidor de compilação destes novos testes falham na linha contendo

browser.GetCookie(url, cookieName)

O erro apresentado no registo de CruiseControl é o velho castanheiro de:

Object reference not set to an instance of an object.

Eu conectado ao servidor de compilação com o Remote Desktop, usando a mesma conta de usuário que CruiseControl é executado sob, e executar MbUnit manualmente, e os testes passar. Portanto, não pode haver um problema com as permissões no servidor de compilação para os cookies de acesso.

Eu olhei através de toda a documentação WatiN para ajudar, mas vêm-se vazio. Eu reiniciado o serviço CruiseControl. Eu tentei tudo que eu posso pensar e agora estou completamente perdido agora, como o que poderia ser diferente na forma Cruise Control é executado esses testes.

Alguém sabe o que poderia estar causando isso e / ou como resolvê-lo?

Foi útil?

Solução

Tente executar CruiseControl como um aplicativo em vez de como um serviço. WatiN tende a travar quando executado a partir de um serviço (uma vez que os serviços do Windows não estão ligados a uma sessão de UI, e WatiN requer um para manipulação de caixas de diálogo no IE).

Mas, além disso ... lembre-se que os cookies do IE são armazenados em seu perfil de usuário. Os perfis não são carregados quando os serviços são executados - são processos daemon que funcionam silenciosamente em segundo plano e não realmente executados no contexto de uma sessão de logon. Eu suspeito que é a causa de sua exceção.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top