У нас есть несколько модульных тестов, которые не работают при запуске в режиме Release и режиме отладки. Если я подключу отладчик в режиме выпуска, тесты пройдут. Здесь слишком много кода для публикации, поэтому я просто ищу передовые методы отладки проблем, связанных с режимом выпуска. Я проверил:
РЕШЕНИЕ: В данном случае это потому, что я сравнивал переменные с плавающей запятой на равенство. Я не мог изменить число с плавающей запятой на десятичное без значительного рефакторинга, поэтому я добавил метод расширения:
public static class FloatExtension
{
public static bool AlmostEquals(this float f1, float f2, float precision)
{
return (Math.Abs(f1 - f2) <= precision);
}
public static bool AlmostEquals(this float f1, float f2)
{
return AlmostEquals(f1, f2, .00001f);
}
public static bool AlmostEquals(this float? f1, float? f2)
{
if (f1.HasValue && f2.HasValue)
{
return AlmostEquals(f1.Value, f2.Value);
}
else if (f1 == null && f2 == null)
{
return true;
}
return false;
}
}