Pergunta

Tudo funciona bem quando a classe testes de unidade é parte do projeto principal (TestAccount).

Cada artigo que eu li sobre o teste de unidade recomenda colocar os testes em um projeto separado, então eu ...

  • acrescentou outro projeto (TestAccount.UnitTests) para a solução
  • movido a classe testes unitários (AccountTests.vb) para TestAccount.UnitTests
  • e acrescentou uma referência no TestAccount.UnitTests para TestAccount (copiar = locais true)

A solução compila sem qualquer aviso. No entanto, nUnit não pode acessar o projeto principal e dá o seguinte erro para cada teste:

System.IO.FileNotFoundException: não foi possível carregar arquivo ou assembly 'TestAccount, versão = 1.0.0.0, Culture = neutral, PublicKeyToken = null' ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado.

O que estou fazendo de errado?

(que estava a ter problemas semelhantes com nunit.framework.dll até que ele adicionado ao GAC)

screenshot do Solution Explorer http://img440.imageshack.us/img440/4862 /nunitsolutionexploreree3.jpg

Visual Studio 2005
NET 2.0
nUnit 2.4.8 (.NET versão 2.0)

[Edit] Eu só tenho este problema ao executar nUnit a partir do Visual Studio (como comando externo). Se eu carregar o console nUnit independentemente, ele funciona bem.

[Edit] Omar: Sim, eu tenho a referência a outro projeto. Aqui é um screenshot do meu Solution Explorer

Eu acho que eu poderia simplesmente ter de executar o console nUnit separadamente (em vez de através de ferramentas externas do VS).

Foi útil?

Solução

Eu encontrei um relatório de bug que diz Visual Studio expande de forma incorrecta as macros TargetPath e TargetDir. Eles expandir para o obj \ diretório, não bin \

[Update] O problema / solução é realmente discutido na Suporte Visual Studio seção da documentação. Desde macros o 'target' apontam para obj \, você não pode usá-los out-of-the-box. Acabei usando a seguinte expressão no campo Argumentos:

$(ProjectDir)bin/Debug/$(TargetName)$(TargetExt)

Outras dicas

Isso pode parecer bobagem, mas eu estou indo para ir para o óbvio ter-lhe dado o seu projeto de teste uma referência a outro projeto?

Outras questões que são comuns para este tipo de problema é o uso de classes internas que não podem acessados ??a partir de outro projeto / namespace.

Também tenha certeza que sua saída de montagem corresponde caminho para o que está configurado na sua configuração NUnit. Tenho a mesma configuração, mas eu não tenho a set 'cópia local = true'

É o problema com ele não encontrar o aplicativo em si, ou uma das dependências do aplicativo? Você pode tentar usando FileMon ou do Log Viewer Fusão para ver o que exatamente está falhando. É possível que o problema não está em encontrar o aplicativo em si, mas na localização de outra dependência. Certifique-se de todas as dependências têm Copy Local definido como verdadeiro.

Como exatamente você está começando a GUI NUnit dentro VisualStudio? Se você está definindo o "programa externo Start" sob as propriedades do projeto, dá-lhe a opção de especificar o diretório de trabalho. Você pode precisar mudar isto para o local de construção de sua dll de teste.

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