Bla*_*ell 15 asp.net xunit xunit.net xunit2 asp.net-core
我试图在XUnit项目中执行以下操作,以获取我的测试应该使用的数据库的连接字符串:
public class TestFixture : IDisposable
{
public IConfigurationRoot Configuration { get; set; }
public MyFixture()
{
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
Configuration = builder.Build();
}
public void Dispose()
{
}
}
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为它在Startup.cs中使用时在WebAPI和MVC模板中完美运行.此外,此代码以前在RC1中使用dnx工作,但现在我将所有内容更新到RC2和Core CLI,它不再能够找到appsettings.jsonxunit类库的根目录中的文件.
这是我的测试类的样子,所以你可以看到我如何调用配置:
public class MyTests : IClassFixture<MyFixture>
{
private readonly MyFixture _fixture;
public MyTests(MyFixture fixture)
{
this._fixture = fixture;
}
[Fact]
public void TestCase1()
{
ICarRepository carRepository = new CarRepository(_fixture.Configuration);
}
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*ine 20
这是一个简单的问题,你需要appsetting.json在xunit项目下也存在.或者您需要使用指向appsettings.json其他项目中存在位置的相对路径.
public class TestFixture : IDisposable
{
public IConfigurationRoot Configuration { get; set; }
public MyFixture()
{
var builder = new ConfigurationBuilder()
.AddJsonFile("../../OtherProj/src/OtherProj/appsettings.json",
optional: true, reloadOnChange: true);
Configuration = builder.Build();
}
public void Dispose() { }
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,您只需拥有自己的测试项目本地配置文件.在我的ASP.NET Core RC2数据库测试项目中,我的fixture看起来像这样:
public DatabaseFixture()
{
var builder =
new ConfigurationBuilder()
.AddJsonFile("testsettings.json")
.AddEnvironmentVariables();
// Omitted...
}
Run Code Online (Sandbox Code Playgroud)
其中testsettings.json是测试特定配置,是项目的本地配置.
更新
在你project.json确保你标记appsettings.json为copyToOutput.查看架构存储以获取详细信息.
"buildOptions": {
"copyToOutput": {
"include": [ "appsettings.json" ]
}
},
Run Code Online (Sandbox Code Playgroud)
为@DavidPine的答案添加更多信息
不知何故相对路径对我不起作用,所以这就是我的做法。
var builder = new ConfigurationBuilder()
.SetBasePath(Path.GetFullPath(@"../XXXX")).AddJsonFile("appsettings.json");
Run Code Online (Sandbox Code Playgroud)
我的是.net core 1.0.0-preview1-002702
| 归档时间: |
|
| 查看次数: |
8846 次 |
| 最近记录: |