Pergunta

Estou executando o Junit Nightly construa meu computador como uma tarefa programada no Windows XP. Meu aplicativo usa o JAXB; portanto, alguns dos testes precisam fazer referência aos esquemas XSD usando o System ClassPath. Quando a construção noturna funciona enquanto não estou no computador, recebo um erro como este:

java.lang.Exception: Incapaz de carregar o esquema myschema.xsd do ClassPath

No entanto, quando executo a construção manualmente, não recebo esse erro. A variável de ambiente para a localização dos meus esquemas é um Sistema Variável, não uma variável de usuário, então não sei o que poderia estar causando esse erro. O que poderia ser causa desse erro?

EDITAR: Alternativas como Hudson não são o que estou pedindo. Estou pedindo uma solução para a tecnologia descrita acima (arquivo em lote em execução como uma tarefa programada).

Foi útil?

Solução

Minha suspeita é que seu diretório de trabalho seja diferente do que você espera (em vez da variável de pista de classe especificamente). Não é óbvio imediatamente se você estiver executando esta tarefa programada como usuário ou como uma tarefa do sistema. Em ambos os casos, vale a pena descobrir exatamente onde a tarefa está em execução.

Dito isto, enquanto eu costumava configurar construções automáticas usando tarefas agendadas do Windows XP (exatamente como você está fazendo agora), atualmente usamos CruiseControl. Em resumo, isso não é muito diferente do que você está fazendo (executando uma construção regularmente), mas aumenta sua flexibilidade. Por aqui, a capacidade mais valiosa do CruiseControl é detectar que as mudanças foram cometidas e apenas executar a construção então. Descobrimos construções quebradas, testes de unidade quebrados, etc., dentro de 10 minutos de uma confirmação agora.

Outras dicas

Hudson é outro mecanismo de integração contínuo, muito simples de configurar:

Hudson oferece os seguintes recursos:

  • Instalação fácil: Just Java -Jar Hudson.war ou implante -o em um contêiner de servlet. Sem instalação adicional, sem banco de dados.
  • Configuração fácil: o Hudson pode ser configurado inteiramente a partir de sua GUI da Web amigável, com extensas verificações de erros de voo e ajuda embutida. Não há mais necessidade de ajustar o XML manualmente, embora se você quiser fazê -lo, também pode fazer isso.
  • Suporte ao conjunto de alterações: o Hudson pode gerar uma lista de alterações feitas na construção do CVS/Subversão/Mercurial. Isso também é feito de maneira bastante eficiente, para reduzir a carga do repositório.
  • Links permanentes: o Hudson oferece URLs legíveis limpos para a maioria de suas páginas, incluindo alguns links de links do Permalings "mais recente compilação"/"mais recente sucesso de sucesso", para que possam ser facilmente vinculados a partir de outros lugares.
  • Integração RSS/E-mail/IM: Monitore os resultados da construção por RSS ou e-mail para obter notificações em tempo real sobre falhas.
  • Etiqueta após o fato: as compilações podem ser marcadas muito tempo após a conclusão das compilações. em um gráfico.
  • Construções distribuídas: o Hudson pode distribuir cargas de construção/teste para vários computadores. Isso permite tirar o máximo proveito dessas estações de trabalho ociosas sentadas sob as mesas dos desenvolvedores. Impressão digital de arquivo: o Hudson pode acompanhar qual a construção produziu quais frascos e cujas compilações estão usando qual versão dos frascos e assim por diante. Isso funciona até para frascos que são produzidos fora de Hudson e são ideais para os projetos rastrearem a dependência.
  • Suporte ao plug -in: o Hudson pode ser estendido por meio de plugins de terceiros. Você pode escrever plugins para fazer com que as ferramentas/processos de suporte do Hudson que sua equipe usa.

Você deve conferir Hudson ou Controle de cruzeiro. Ambos são fáceis de configurar e cuidam desse tipo de problema para você com mais relatórios, controle e maior usabilidade. Você gastará menos tempo investigando problemas de construção.

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