問題は、私が理解しているように、農場と家屋の固定名を使用してテストが記録されるため、それらの名前がデータベースに入力されることです。テストを再度実行すると、同じ名前が使用されますが、それらは既にデータベースに存在します。
1 つの方法は、テストの実行ごとに異なる名前を使用することです。テスト実行の日時を含む農場名と家屋名を作成することをお勧めします。FarmYYYYMMDDHHMMSS
、 、H1YYYYMMDDHHMMSS
などの名前を作成しますH2YYYYMMDDHHMMSS
。必要に応じて、日付と時刻を圧縮して短い名前にするのは簡単です。コードで名前を生成し、値をクラスのフィールドに書き込みます...Params
。これは、データ駆動型のコード化された UI テストで行われるのと同じです。
別の方法として、シリアル番号 (または文字) を追加することを提案する人もいますが、それは、どの番号が既に使用されているかを追跡することを意味します。したがって、私はそのアプローチを避けます。
名前の圧縮に関する更新。
プロジェクトとテストの必要性が短命である場合、その年の一部またはすべてが省略される可能性があります。2020 年以降はテストが必要ないことを保証できる場合は、10 年の年 (現在は「3」) を保持してください。年間通算日を使用する代わりYYMM
に、1 から 366 の範囲の 3 桁の数字を使用できます。日付を開始日からの日数としてエンコードできます。数値は正確に正確である必要はありません。計算が簡単で、重複しない適切な値が得られるだけです。たとえば、秒を使用する(year - 2013) * 366 + day_of_year
代わりHHMMSS
に、 0 から 60*60*24 の範囲、つまり 0 から 86400 を使用できます。名前に 10 進数を使用する代わりに、基数 36 を使用できます ( http://en.wikipediaを参照) .org/wiki/Base_36) エンコーディング。これらを総合すると、名前の日時部分に必要な文字数が半分以下になるはずです。