0
を使用するときに私たちは、断続的OutOfMemoryExceptionsを投げ、当社のCIパイプライン破壊されているいくつかの類似したユニットテストがあります:あなたは私たちはその数字を作成するためにAutoFixtureのジェネレータを使用している見ることができるようにユニットテスト断続OOM例外Autofixtureジェネレータ
public void Evaluate_Node1GreaterThanNode2_ReturnsTrue_Decimal()
{
//Arrange
var generator = _fixture.Create<Generator<decimal>>();
var value1 = _fixture.Create<decimal>();
var value2 = generator.Where(x => x < value1).First();
Node.Node1.Evaluate(Arg.Any<IPeriod>(), Arg.Any<IColleaguePeriodDataManager>()).Returns(value1);
Node.Node2.Evaluate(Arg.Any<IPeriod>(), Arg.Any<IColleaguePeriodDataManager>()).Returns(value2);
//Act
var result = Node.Evaluate();
//Assert
Assert.IsTrue(result);
Assert.IsTrue(Node.EvaluatedResult);
}
を
generator.Where(x => x < value1).First();
明らかにこのアプローチは機能しません。誰もが回避策を持っていますか?ここで
はエラーとスタックトレースです:
System.OutOfMemoryException : Array dimensions exceeded supported range.
at System.Collections.Generic.HashSet`1.SetCapacity(Int32 newSize, Boolean forceNewHashCodes)
at System.Collections.Generic.HashSet`1.AddIfNotPresent(T value)
at Ploeh.AutoFixture.RandomNumericSequenceGenerator.GetNextRandom()
at Ploeh.AutoFixture.RandomNumericSequenceGenerator.CreateRandom(Type request)
at Ploeh.AutoFixture.Kernel.CompositeSpecimenBuilder.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.CompositeSpecimenBuilder.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.Postprocessor`1.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.CompositeSpecimenBuilder.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.TracingBuilder.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.TerminatingWithPathSpecimenBuilder.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.RecursionGuard.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.RecursionGuard.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.CompositeSpecimenBuilder.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.CompositeSpecimenBuilder.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.Postprocessor`1.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.CompositeSpecimenBuilder.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.TracingBuilder.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.TerminatingWithPathSpecimenBuilder.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.RecursionGuard.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.Kernel.RecursionGuard.Create(Object request, ISpecimenContext context)
at Ploeh.AutoFixture.SpecimenFactory.Create[T](ISpecimenContext context, T seed)
at Ploeh.AutoFixture.SpecimenFactory.Create[T](ISpecimenContext context)
at Ploeh.AutoFixture.Generator`1.<GetEnumerator>d__2.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)