Asp.Net Core集成测试似乎很简单,但我却无法使用我的React开发服务器测试起始应用程序。它可以从浏览器中正常运行,因此我认为Node、npm和React已经正确设置,但在xUnit下不行。它会出现以下异常:
System.AggregateException: 发生了一个或多个错误。---> System.AggregateException: 发生了一个或多个错误。---> System.InvalidOperationException: 启动“npm”失败。要解决这个问题:
[1] 确保“npm”已安装并且可以在PATH目录之一找到。 当前的PATH环境变量是:{PATH}
确保可执行文件位于其中一个目录中,或更新您的PATH。
[2] 有关原因的详细信息,请参见InnerException。---> System.ComponentModel.Win32Exception:目录名称无效 ...
我猜这是因为它找不到我的SPA的内容根目录,所以我尝试将其添加到Web主机构建器中,但没有成功:
.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 );
}
我漏掉了什么?