运行API测试后删除测试数据库

时间:2019-05-02 15:05:08

标签: xunit asp.net-core-2.2

对于正在使用的应用程序,我有一组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}),但我宁愿允许并行执行

0 个答案:

没有答案