每次我填写表格时,我正在自动化的应用程序都需要一个唯一的参考号,我在大多数测试中都使用DateTime.Now
我的唯一参考号来执行此操作:
public static string Today = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
当我通过 Visual Studio 为每个测试运行这些测试时,我得到一个唯一的 DateTime.Now;这是正确的行为。但是当我通过 Nunit GUI 或 TeamCity CI 运行相同的测试时,DateTime.Now
它会从第一次测试运行中被缓存,因此所有测试都失败后。
每次测试运行后,我都尝试TimeZoneInfo.ClearCachedData()
在 TearDown 部分中使用:
[AfterScenario]
public static void TearDown()
{
CultureInfo.CurrentCulture.ClearCachedData();
TimeZoneInfo.ClearCachedData();
driver.Quit();
}
但是当我通过 Nunit GUI 或 TeamCity 运行时,这不会清除缓存。我尝试使用 DateTime.UtcNow 并在设置部分中移动 ClearCachedData 代码,但这些选项都不适合我。
以前有没有人克服过这个问题?