据我了解,问题在于测试是使用农场和房屋的固定名称记录的,因此这些名称被输入到数据库中。当再次运行测试时,这些相同的名称被使用,但它们已经在数据库中。
一种方法是确保在每次测试运行中使用不同的名称。我建议创建一个包含测试运行日期和时间的农场名称和房屋名称。因此,请创建诸如FarmYYYYMMDDHHMMSS
和H1YYYYMMDDHHMMSS
之类的名称H2YYYYMMDDHHMMSS
。如果需要,可以很容易地压缩日期和时间以缩短名称。在代码中生成名称,然后将值写入...Params
类的字段,就像在数据驱动的编码 UI 测试中所做的那样。
作为替代方案,有些人建议附加序列号(或字母),但这意味着要跟踪已使用的编号。因此,我会避免这种方法。
关于名称压缩的更新。
如果项目和测试需求是短暂的,那么一年中的部分或全部时间可能会被省略。如果您可以保证在 2020 年之后不需要进行测试,那么只需保留十年中的年份(目前为“3”)。您可以使用 1 到 366 范围内的三位数字,而不是YYMM
使用一年中的某一天。您可以将日期编码为自某个开始日期以来的天数;该数字不需要完全正确,只需易于计算并给出合适的非重叠值即可。例如(year - 2013) * 366 + day_of_year
,HHMMSS
您可以使用 0 到 60*60*24 范围内的秒数,即 0 到 86400。而不是使用十进制数字作为名称,您可以使用基数 36(参见http://en.wikipedia .org/wiki/Base_36) 编码。总而言之,这些应该比名称的日期时间部分所需的字符数减半更好。