Pergunta
Eu usei NUnit antes, mas não em um tempo, e nunca nesta máquina. I abriu a versão 2.4.8 em Arquivos de programas, e eu continuo recebendo este erro ao tentar carregar meus testes.
Não foi possível carregar arquivo ou assembly 'nunit.framework, versão = 2.4.8.0, Culture = neutral, PublicKeyToken = 96d09a1eb7f44a77' ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado **
A fim de simplificar o problema, eu compilei o arquivo de teste possível mais básico.
using NUnit.Framework;
namespace test
{
[TestFixture]
public class Tester
{
[Test]
public void ATest()
{
Assert.IsTrue( false, "At least the test ran!" );
}
}
}
Eu adicionei "C: \ Program Files \ NUnit-2.4.8-net-2.0 \ bin" para o meu caminho (e reiniciado). Nota que, se eu copiar o teste de montagem para essa pasta, então
C:\Program Files\NUnit-2.4.8-net-2.0\bin>nunit-console test.dll
obras, mas
C:\Program Files\NUnit-2.4.8-net-2.0\bin>nunit-console c:\dev\nunit_test\test.dll
e
C:\dev\nunit_test>nunit_console test.dll
falhar com o erro acima.
Provavelmente eu poderia contornar isso copiando a dll NUnit.Framework na pasta bin do meu projeto, mas eu não me lembro de ter que fazer isso no passado. Além disso, eu recebo o mesmo erro na GUI. Não deveria o know GUI onde a estrutura está localizada (isto é, na mesma pasta)?
@ Scott, eu não estou usando o Visual Studio. Eu uso a seguinte linha para compilar o projeto de teste.
%windir%\Microsoft.NET\Framework\v2.0.50727\csc.exe /r:"C:\Program Files\NUnit-2.4.8-net-2.0\bin\nunit.framework.dll" /t:library /out:test.dll test.cs
@devio, eu tentei tanto o msi e o zip com o mesmo resultado.
Solução
Se você instalar usando NUnit-2.4.8-net-2.0.msi, as assembleias NUnit são adicionados ao GAC.
Você também pode reinstalar manualmente por runnig gacutil do Comando VS2005 Prompt.
Outras dicas
Certifique-se de ter adicionado uma referência a nunit.framework. Se você tem, então certifique-se as propriedades dessa referência têm a copiar conjunto de propriedade local para true.
Eu tive o mesmo problema e eu tinha instalado usando NUnit-2.4.8-net-2.0.msi. Expandindo o comentário "adicionar ao GAC" acima, aqui está o que eu fiz:
-
Abra o seu "comando Visual Sudio pronta (em geral: certifique-se gacutil está em seu caminho) e: cd "C: \ Program Files \ NUnit 2.4.8 \ bin"
-
Unregister suas entradas NUnit do GAC. Você pode fazer isso por encontrar as entradas NUnit registrado no GAC:
gacutil / l | find / i "nunit"> temp.bat && notepad temp.bat
- Prepend as linhas nunit.core e nunit.framework com "gacutil / uf", ou seja:.
gacutil / uf nunit.core, versão = 2.4.2.0, Culture = neutral, PublicKeyToken = 96d09a1eb7f44a77
gacutil / uf nunit.framework, versão = 2.4.2.0, Culture = neutral, PublicKeyToken = 96d09a1eb7f44a77
-
Execute o arquivo bat para removê-los: temp.bat
-
Registrar o nunit dlls que você precisa:
gacutil / i nunit.core.dll
gacutil / i nunit.framework.dll
Note que a instalação NUnit atual (2.5.10) não registra-se automaticamente no GAC. Se você deve usar GAC, registrá-lo via gacutil / i onde nunitframeworkpath é geralmente% Program Files% \ NUnit \-2.0 net \ framework \ nunit-framework
I chegou a esta mensagem hoje, quando eu tentei adicionar um novo teste de montagem para um projeto de teste NUnit existente. Parece que meus projetos de teste tinha várias referências caminho para montagens nunit.framework.dll idênticas.
Se você tem mais de um teste de montagem em seu projeto NUnit, você pode querer verificar a propriedade Path da referência nunit.framework em seus projetos de teste. Uma vez eu fiz-los corresponder, a mensagem de erro foi embora.