【发布时间】:2016-11-20 11:28:48
【问题描述】:
我创建了一个 asp.net dot net core rtm (1.0.0-preview2-003121)。
它使用 ConfigurationBuilder 从 appsettings.json 生成配置:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
Configuration = builder.Build();
}
我也试过'.SetBasePath(Directory.GetCurrentDirectory())`
现在我的单元测试(在另一个项目中)我正在构建一个内存主机: 我试过了:
_server = new TestServer(new WebHostBuilder().UseStartup<Startup>());
_client = _server.CreateClient();
我已经试过了:
_server = new TestServer(
new WebHostBuilder()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>());
_client = _server.CreateClient();
我的 Travis.yml 文件非常标准:
install:
# Install .net using linux CLI commands
- sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
- sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
- sudo apt-get update
- sudo apt-get -qq install dotnet-dev-1.0.0-preview2-003121
- sudo apt-get install dotnet-hostfxr-1.0.2
script:
- dotnet restore
- dotnet build src/Speakr.WebApp.Site
- dotnet build tests/Speakr.WebApp.Site.Tests
- dotnet test tests/Speakr.WebApp.Site.Tests -f netcoreapp1.0
在本地,所有工作和构建。在 Windows 和 Ubuntu 上。
在 travis CI 上,我收到以下错误:
Error : Speakr.WebApp.Site.Tests.InMemoryTests.HomeControllerIndexShouldNotBeNull
有人看过吗? 我尝试将 project.json 添加到测试项目中,在主项目中包含 CopyToOutput 并在测试项目中包含 CopytoOutput。
纳达! :(
【问题讨论】:
-
附带说明:从技术上讲,这不是单元测试,而是集成测试:P
-
是的,但是,这些测试对我来说更有用,因为控制器->服务->客户端层非常简单,无需测试,但是这些测试允许您测试管道。所以我一直“倾向于”称它们为“我的”单元测试,但你是绝对正确的:)
标签: json asp.net-mvc nunit asp.net-core travis-ci