Я пытаюсь использовать MsTest для тестирования asp. net core webapi
[TestClass]
public class IndexControllerTest
{
private readonly WebHostTestHelp _webhost;
public IndexControllerTest( )
{
_webhost =new WebHostTestHelp();
}
[TestMethod]
public async Task GetindexstringhttpTest()
{
var res = await _webhost._http.GetAsync("api/Index/indexstring");
var result = await res.Content.ReadAsStringAsync();
Console.WriteLine(result);
Assert.AreEqual("OK", res.StatusCode.ToString());
Assert.AreEqual("indexstring", result);
res.isCodeOk();
}
[TestMethod]
public async Task GetindexresultdatahttpTest()
{
var res = await _webhost._http.GetAsync("api/Index/indexresultdata");
var result = await res.Content.ReadAsStringAsync();
Console.WriteLine(result);
Assert.AreEqual("OK", res.StatusCode.ToString());
res.isCodeOk();
}
}
Я использую этот код для тестирования webapi. Моя цель - увидеть console.WriteLine. Но ядро asp. net имеет Logging с выводом по умолчанию. Итак, я вижу это.
warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]
Failed to determine the https port for redirect.
info: DataBase.FilterHelp.LogFilterAttribute[0]
0 | zekj.Controllers.IndexController.indexresultdata (zekj) | {"state":"查询","affectRow":0,"countRow":1,"message":{"data":"2222indexresultdata"}}
{"state":"查询","affectRow":0,"countRow":1,"message":{"data":"2222indexresultdata"}}
Мне не нужно видеть предупреждение, информацию или другое. Подскажите пожалуйста как это сделать. Спасибо.
Я меняю свой код и он работает.
_testserver = new TestServer(WebHost.CreateDefaultBuilder().ConfigureLogging(x => x.ClearProviders()).UseStartup<zekjRestaurant.Startup>());