【发布时间】:2013-07-02 05:10:14
【问题描述】:
每次我填写表格时,我正在自动化的应用程序都需要一个唯一的参考号,我在大多数测试中都使用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 会从第一次测试运行中被缓存,因此所有测试都失败了。
我尝试在每次测试运行后在我的 TearDown 部分中使用 TimeZoneInfo.ClearCachedData():
[AfterScenario]
public static void TearDown()
{
CultureInfo.CurrentCulture.ClearCachedData();
TimeZoneInfo.ClearCachedData();
driver.Quit();
}
但是当我通过 Nunit GUI 或 TeamCity 运行时,这不会清除缓存。我曾尝试使用 DateTime.UtcNow 并在设置部分中移动 ClearCachedData 代码,但这些选项都不适合我。
以前有人解决过这个问题吗?
【问题讨论】:
-
如果您使用 Visual Studio 运行一系列测试,您会遇到同样的问题吗?
-
解决方案:.我已将字符串定义为静态,删除它解决了问题: public string Today = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
-
ClearCachedData 的用途完全不同。你可以删除它。
标签: .net caching webdriver timezone