对于正在使用的应用程序,我有一组API测试,这些测试使用TestServer启动Web应用程序。 Here's设置。
我想删除测试运行后创建的数据库。
要使用不同的数据库名称,以允许使用不同的数据库并行运行测试,请使用长度为8的随机字符串替换连接字符串(<div>
{this.state.questionarray.map( (item) => (
<p>Question {item.questionno}
<input type="text" id={item.questionno} />
<button id={item.questionno} onClick={this.handleAddAnswer}>Add Answer</button>
{item.answers.map( (ans) => (ans.answerno /* <== No {} around this */))}
</p>
))}
</div>
)的{id}。
请注意,我无权访问Data Source=Sppd.TeamTuner-TEST-API-{id}.db
,而只能访问API测试中的API。
要允许我实施以上操作:
WebHost
问题在于,从未调用过IApplicationLifetime.ApplicationStopping.Register
注册的方法。
大量阅读后,我对应该做什么和不应该做什么感到困惑,这主要是由于this 2 year old comment指出IIS express不会触发关机事件(这仍然是真的吗?)
this PR中提供了完整的更改和可复制示例。要重现该问题,可以运行任何API测试。
问题:如何在执行测试后删除数据库?
一个功能性的解决方法是使用IApplicationLifetime.ApplicationStopping.Register
禁用API测试的并发测试执行,并在连接字符串中使用恒定的数据库名称(不动态替换{id}),但我宁愿允许并行执行