Интеграционное тестирование Asp.Net Core кажется довольно простым, но я не могу протестировать стартовое приложение с моим сервером реагирования.Он работает нормально из браузера, поэтому я предполагаю, что узел, npm и реакции настроены правильно, но не в xUnit.Сбой со следующим исключением:
System.AggregateException: произошла одна или несколько ошибок.---> System.AggregateException: произошла одна или несколько ошибок.---> System.InvalidOperationException: не удалось запустить 'npm'.Чтобы решить эту проблему:.
[1] Убедитесь, что 'npm' установлен и находится в одном из каталогов PATH.Текущая переменная среды PATH: {PATH}
Убедитесь, что исполняемый файл находится в одном из этих каталогов, или обновите свой PATH.
[2] Дополнительные сведения о причине см. В InnerException.---> System.ComponentModel.Win32Exception: имя каталога недействительно ...
Я предполагаю, что это потому, что он не может найти корень содержимого моего спа, поэтому я попытался добавить его в свой веб-хостингбез удачи:
.UseSolutionRelativeContentRoot( "Solution Relative Path to My App" ) );
Это мой тестовый класс:
public class SampleDataControllerTest
{
private readonly TestServer server;
private readonly HttpClient client;
public SampleDataControllerTest()
{
server = new TestServer( WebHost.CreateDefaultBuilder()
.UseStartup<Startup>()
.UseSolutionRelativeContentRoot( "Solution Relative Path to My App" ) );
.UseEnvironment( "Development" );
client = server.CreateClient();
}
[Fact]
public async Task RootTest()
{
HttpResponseMessage page = await client.GetAsync( "/" );
Assert.NotNull( page );
Assert.Equal( HttpStatusCode.OK, page.StatusCode );
}
Чего мне не хватает?