私のプロジェクトをnunit 2.6.3から3.2.1に移行しています。私は、 "Randomizer"クラスが "NUnit.Framework"から "NUnit.Framework.Internal"に移動したが、Randomizer.GetDoublesまたは同等のメソッドを見つけることができないことを理解しました。Nunitのランダマイザ3
これについてのご意見はありますか?
おかげ
私のプロジェクトをnunit 2.6.3から3.2.1に移行しています。私は、 "Randomizer"クラスが "NUnit.Framework"から "NUnit.Framework.Internal"に移動したが、Randomizer.GetDoublesまたは同等のメソッドを見つけることができないことを理解しました。Nunitのランダマイザ3
これについてのご意見はありますか?
おかげ
ランダマイザクラスが移動し、今TestContext.CurrentContext.Random
を介してアクセスされています。
Randomizer.GetDoubles
はなくなりましたが、Randomizer.NextDouble(double min, double max)
メソッドがあります。
var randomizer = new Randomizer(seed);
double[] values = Enumerable.Repeat(randomizer.NextDouble(min, max), times).ToArray();
Randomizer
クラスはNUnit.Framework.Internal
名前空間を介して利用できます。あなたはNUnitの3にそのコードを置き換えることができ、一緒GetDoubles
とシードとのRandomizer
を使用している場合は、[Docs]
。
こんにちはDejan、私はあなたの方法を使用しましたが、期待どおりの結果を得られませんでした。 –
@ Leal.li:別の種子で試しましたか? – Dejan
あなたのクイックレスポンスのおかげで、私は時々同じ値を得るランダムな値を取得すると、同じ種子を設定することを意味します。私は1000種の種子を設定すると1000回も試したいと思うのですが、それは1000種を設定する必要があるのでしょうか?あまりにも非友好的ですか? "[ランダム(-128、127、3)]" –
@Dejan はい、私はsorry.IがRandomizer
クラスメソッドによってテスト番号のセットを生成しようとした、とNUnitのValueSource
属性のインポートにより、以下のこれらの試験numbers.Theが私の現在のアプローチです。午前
私はこの方法が良くないことを知っていますので、私は他の良い方法かどうか尋ねたいと思います。
public static double[] GetDoubleInRangeNums()
{
List<double> list = new List<double>();
double k = 0;
list.Add(double.MinValue);
list.Add(double.MaxValue);
for (int i = 0; i < 3; i++)
{
k = randomizer.NextDouble(double.MaxValue);
if (!list.Contains(k))
{
list.Add(k);
}
}
return list.ToArray();
}
[Test]
[Category("DataType.Double")]
public void DoubleInRangeTest([ValueSource("GetDoubleInRangeNums")]double value, [Values(1)]int flag)
{
string tableName = "DataTypeDouble";
string columnType = "double precision";
CreateTable(tableName, columnType);
EsgynDbDataType_FloatPointNum(tableName, value, value, EsgynDBType.Double, flag);
}
したがって、_NextDouble_を使用して_GetDoubles_メソッドを書き直す必要がありますか?なぜそのような決定? –
@atrwsr彼らは多くの急速な変更を行いました。私はコードをv3に移行するのに苦労しています。それは大きな壁のようなものだ、私は変更の多くが誤って壊れていたと思う。 –