XUnit в Visual Studio 2015 RC1 Update 1 не находит тесты

Я создал проект ASP.NET 5 в Visual Studio 2015, используя шаблоны предварительного просмотра. Я установил XUnit через NuGet и добавил в свое решение «тестовый проект xUnit (DNX)».

Но мой обозреватель тестов ничего не показывает, хотя у меня есть общедоступный метод проверки «Факт» в Class1.cs. Когда я «Запускаю все тесты», окно вывода «Тесты» пусто. Мое окно вывода «Сборка» показывает, что сборка 2 проектов выполнена успешно. (Мой проект ASP.NET 5 и мой проект xUnit.)

Однако, когда я либо создаю, либо очищаю свое решение, я получаю следующее сообщение в окне вывода «Тесты»:

------ Discover test started ------
------ Test started: Project: MyProjectTest ------
Starting  Microsoft.Dnx.TestHost [C:\Users\xxxxxx\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\dnx.exe --appbase "C:\Users\xxxxxx\Documents\GitForWindows\Repositories\MySolution\MyProjectTest" Microsoft.Dnx.ApplicationHost --port 8424 Microsoft.Dnx.TestHost --port 8458 --parentProcessId 17312]

System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Dnx.TestHost.Program.<>c__DisplayClass2_0.<<Main>b__0>d.MoveNext()
Unable to start Microsoft.Dnx.TestHost
========== Discover test finished: 0 found (0:00:01.057196) ==========

Версия DNX SDK моего решения, согласно окну свойств обоих проектов, — 1.0.0-rc1-update1. Я также установил это как «активную» среду выполнения через dnvm без изменений в приведенном выше поведении. Однако я не понимаю инструкций по запуску DNX из командной строки, так что, возможно, это отправная точка?

Когда я пытаюсь вместо этого переключить DNX SDK на 1.0.0-beta5 и чистое решение, я получаю:

------ Discover test started ------
------ Test started: Project: MyProjectTest ------
Starting  Microsoft.Framework.TestHost [C:\Users\xxxxx\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta5\bin\dnx.exe --appbase "C:\Users\xxxxxx\Documents\GitForWindows\Repositories\MySolution\MyProjectTest" Microsoft.Framework.ApplicationHost --port 9737 Microsoft.Framework.TestHost --port 9770 --parentProcessId 16732]

System.InvalidOperationException: Failed to resolve the following dependencies for target framework 'DNX,Version=v4.5.1':
   xunit 2.1.0
   xunit.runner.dnx 2.1.0-beta6-build191

Searched Locations:
  C:\Users\xxxxx\Documents\GitForWindows\Repositories\MySolution\{name}\project.json
  C:\Users\xxxxx\Documents\GitForWindows\Repositories\MySolution\src\{name}\project.json
  C:\Users\xxxxx\Documents\GitForWindows\Repositories\MySolution\test\{name}\project.json
  C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\{name}.dll
  C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\{name}.dll
  C:\Windows\Microsoft.NET\assembly\GAC_32\{name}\{version}\{name}.dll
  C:\Windows\Microsoft.NET\assembly\GAC_64\{name}\{version}\{name}.dll
  C:\Windows\Microsoft.NET\assembly\GAC_MSIL\{name}\{version}\{name}.dll

Try running 'dnu restore'.

   at Microsoft.Framework.Runtime.DefaultHost.GetEntryPoint(String applicationName)
   at Microsoft.Framework.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args)
   at Microsoft.Framework.ApplicationHost.Program.Main(String[] args)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.Framework.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider)
   at dnx.host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env)
   at dnx.host.RuntimeBootstrapper.ExecuteAsync(String[] args)
   at dnx.host.RuntimeBootstrapper.Execute(String[] args)
Unable to start Microsoft.Framework.TestHost
========== Discover test finished: 0 found (0:00:01.4699978) ==========

Запуск восстановления DNU ничего не решает.

РЕДАКТИРОВАТЬ: Вот проект.json по запросу:

{
  "version": "1.0.0-*",
  "description": "",
  "authors": [ "" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "dependencies": {
    "xunit": "2.1.0",
    "xunit.runner.dnx": "2.1.0-beta6-build191"
  },
  "commands": {
    "test": "xunit.runner.dnx"
  },

  "frameworks" : {
    "dnx451": { },
    "dnxcore50" : {
      "dependencies": {
        "System.Collections": "4.0.11-beta-23225",
        "System.Linq": "4.0.1-beta-23225",
        "System.Threading": "4.0.11-beta-23225",
        "Microsoft.CSharp": "4.0.1-beta-23225"
      }
    }
  }
}

person David    schedule 05.12.2015    source источник
comment
Не могли бы вы поделиться файлом project.json?   -  person Victor Hurdugaci    schedule 05.12.2015
comment
Я включил файл .   -  person David    schedule 05.12.2015
comment
Вам нужно перенести xunit.runner.dnx на версию 2.1.0-rc1-build204   -  person Pawel    schedule 06.12.2015
comment
Ты крут, Павел! Эй, пожалуйста, опубликуйте это как ответ, чтобы я мог принять его. :) И если вы можете включить что-то о том, как вы это узнали и/или где это задокументировано, это было бы прекрасно.   -  person David    schedule 06.12.2015
comment
@David Взгляните на сайт проекта xunit: xunit.github.io/docs/ Getting-started-dnx.html, где у команды есть задокументированные версии.   -  person pg0xC    schedule 06.12.2015
comment
Для людей, плохо знакомых с asp.net 5 (я), сделайте это.... dnx --version и прочитайте информацию в зеленом поле вверху этой страницы xunit.github.io/docs/getting-started-dnx.html   -  person Bryan    schedule 16.01.2016


Ответы (1)


Вам нужно использовать версию xUnit runner, которая соответствует dnx. Для dxn RC1 вам необходимо использовать версию 2.1.0-rc1-build204 файла xunit.runner.dnx.

person Pawel    schedule 07.12.2015