У меня есть некоторый код с модульными тестами, которые проходят в сборке Debug, но дают сбой в сборке Release, что является правильным.Тем не менее, одни и те же тесты проходят как в режиме отладки, так и в режиме выпуска при запуске с помощью JetBrains dotCover.
Чтобы дать немного фона, вот тестовый код, вызывающий проблемы, просто чтобы дать вам представление о том, почему он не работает дляВыпуск сборки - это в основном из-за уменьшения информации в стеке из-за оптимизации кода.
using System.Diagnostics;
using NUnit.Framework;
namespace DotCoverTest
{
[TestFixture]
public class TestLogger
{
[Test]
public void GetCurrentClassLoggerReturnsLoggerWithOwningTypeName()
{
Assert.AreEqual(Logger.GetCurrentClassLogger(), GetType().Name);
}
}
public class Logger
{
public static string GetCurrentClassLogger()
{
return new StackFrame(1, false).GetMethod().DeclaringType.Name;
}
}
}
РЕДАКТИРОВАТЬ: Есть идеи, как я могу настроить свою сборку так, чтобы я получал одинаковые результаты теста с или без инструмента покрытия?
ПРИМЕЧАНИЕ. Этот вопрос был первоначально опубликован, полагая, что это была проблема с TeamCity, но это не так.