Я запускаю новый проект ASP.net vNext/MVC6, и я хочу использовать xUnit для его проверки.Почему xUnit не может найти мои тесты DNX?
Я следил за instructions on the xUnit web site для проектов DNX.
Когда я пытаюсь запустить тесты в Visual Studio, либо с помощью встроенного в бегуна или в ReSharper, я получаю сообщение об ошибке:
Если я пытаюсь запустить тесты из командная строка, я получаю это:
xUnit.net DNX Runner (32-bit DNX 4.5.1) Discovering: TA.Product.Tests Discovered: TA.Product.Tests Starting: TA.Product.Tests TA.Product.Tests.Class1.FactMethodName [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: D:\VS-Projects\TA.Product\src\TA.Product.Tests\Class1.cs(25,0): at TA.Product.Tests.Class1.FactMethodName() Finished: TA.Product.Tests === TEST EXECUTION SUMMARY === TA.Product.Tests Total: 1, Errors: 0, Failed: 1, Skipped: 0, Time: 2.216s
Вот мой project.json
файла:
{
"version": "1.0.0-*",
"description": "TA.Product.Tests Class Library",
"authors": [ "Tim" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"dependencies": {
"TA.Product": "1.0.0-*",
"xunit": "2.1.0",
"xunit.runner.dnx": "2.1.0-rc1-build204"
},
"commands": {
"test": "xunit.runner.dnx"
},
"frameworks": {
"dnx451": { },
"dnxcore50": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Threading": "4.0.11-beta-23516"
}
}
}
}
Я нашел this question, и моя версия бегуна xUnit, похоже, соответствует моей версии DNX, RC1-Update1.
Я также нашел this question, в котором говорится, что мои тесты должны быть общедоступными, и они есть.
Идеи, пожалуйста?
Так что это не полный ответ, но я знаю, что расширение RN для Xunit test runner не может запускать тесты DNX - потому что оно ищет неправильное место для dll. Что выглядит строка # 25 'Class1' (в методе' FactMethodName')? – danludwig
@danludwig Я не совсем уверен, что это за линия, но ваша точка имеет смысл. Таким образом, R # runner не может найти тесты, потому что компилятор не выпускает никаких выходных файлов, не так ли? Все это делается в памяти с помощью aspnet5. Так что я на самом деле вижу два разных вопроса. И похоже, что мой код вызывает исключение NullReferenceException. –
Да точно. Второй, где вы запускаете 'dnx test' из командной строки, он не сбой, он преуспевает и говорит вам, что есть 1 неудачный тест. Вы можете настроить проект на выпуск выходных файлов (сборку dll), но все же R # не будет искать его там, где он будет генерироваться по умолчанию. Тем не менее, он должен работать с тестовым обозревателем VS 2015 по умолчанию. – danludwig