2015-05-07 5 views
1

Я пишу тест, используя версию 1.2 из Nancy и Nancy.Testing через NuGet. Мой тест написан с NUnit 2.6.4 и выглядит следующим образом:TypeInitializationException при использовании Nancy.Testing с NUnit test runner

[Test] 
public async Task ShouldReturnSuccessfullyAuthenticatedUser() 
{ 
    // arrange 
    var request = CreateRequest(); 
    var userDocument = CreateUserDocumentFrom(request); 
    await userRepository.AddAsync(userDocument); 

    // act 
    var response = browser.Post(Paths.Login, with => with.JsonBody(request)); 

    // assert 
    response.StatusCode.Should().Be(HttpStatusCode.OK); 
} 

У меня есть это исключение:

System.TypeInitializationException : The type initializer for 'Nancy.Bootstrapper.AppDomainAssemblyTypeScanner' threw an exception. 
    ----> System.IO.DirectoryNotFoundException : Could not find a part of the path 'E:\myProject\bin\Debug\bin\Debug'. 

И я думаю, что есть что-то неправильно при использовании Nancy.Testing с NUnit, так как эквивалентное испытание в xUnit работает просто отлично.

ответ

2

Было похоже, что NUnit пытался автоматически добавить bin\Debug в путь к корзине. То, как я решил это, заключается в том, чтобы явно указать, какой вид пути к пробелу использовать. Вот файл .nunit проекта:

<NUnitProject> 
    <Settings activeconfig="Debug" /> 
    <Config name="Debug" binpathtype="Manual"> 
    <assembly path="bin/Debug/MyUnitTests1.dll" /> 
    <assembly path="bin/Debug/MyUnitTests2.dll" /> 
    </Config> 
    <Config name="Release" binpathtype="Manual"> 
    <assembly path="bin/Release/MyUnitTests1.dll" /> 
    <assembly path="bin/Release/MyUnitTests2.dll" /> 
    </Config> 
</NUnitProject> 

атрибут XML-NUnitProject\Config\binpathtype ранее значение Auto. Когда я изменил его на Manual, как и выше, исключение прошло, и мои тесты прошли успешно.

+0

Где я могу найти этот файл? не может найти файл, заканчивающийся на .nunit в моем решении visual studio. Получение такой же ошибки при попытке запустить nunit-console.exe от Jenkins. –

+0

Это файл, который вы определяете самостоятельно и передаете его в nunit-console.exe как параметр – ceco

+0

Я вижу благодарность @ceko, решил проблему, указав на test .dll вместо файлов проекта. –

Смежные вопросы