Всякий раз, когда я запускаю любой из следующих модульных тестов с подключенным отладчиком, я получаю VerificationException
внутри кода FluentValidation на этом этапе. точка (при необходимости опубликую всю трассировку стека позже):
at FluentValidation.Resources.LocalizedStringSource.CreateFromExpression(Expression`1 expression, IResourceAccessorBuilder resourceProviderSelectionStrategy)
in ...\FluentValidation\Resources\LocalizedStringSource.cs:line 66
Тесты:
using FluentValidation;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var c = new MyClass();
var v = new MyValidator();
v.Validate(c);
}
[TestMethod]
public void TestMethod2()
{
Exception ex = null;
var done = new ManualResetEvent(false);
ThreadPool.QueueUserWorkItem(
o =>
{
try
{
TestMethod1();
}
catch (Exception e)
{
ex = e;
}
finally
{
done.Set();
}
});
done.WaitOne();
Assert.IsNull(ex);
}
}
public class MyValidator : AbstractValidator<MyClass>
{
public MyValidator()
{
RuleFor(c => c.MyProperty).GreaterThan(0);
}
}
public class MyClass
{
public int MyProperty { get; set; }
}
Я упомянул только эти сборки в сценарии с одним решением и одним проектом, ориентированным на среду выполнения 4.0.30319:
- Свободная проверка v3.0.0.0
- Microsoft.VisualStudio.QualityTools.UnitTestFramework v10.0.0.0
- Система
- System.Core
Некоторые другие моменты:
- Запуск теста без отладчика работает нормально
- Покрытие кода отключено
- Я минимизировал упомянутые сборки до минимума.
- Я не вижу ошибок в журнале Fusion
- Я попытался применить
SecurityRulesAttribute
из ответа на аналогичный вопрос а> - Я пробовал некоторые вещи из сообщения в блоге на VerificationException и тестирование а>
- Происходит как на хостах MSTest, так и на Resharper (не пробовал NUnit, потому что общий поток, кажется, находится «под отладчиком».
- Происходит при запуске VS с правами администратора или без прав администратора
Кто-нибудь знает, как я могу предотвратить это VerificationException
, обойти его и/или почему это вызвано? Кажется, что с таким количеством сборок не должно быть никаких конфликтующих загрузок. Я также переместил вспомогательные сборки FluentValidation в сторону, но все равно получаю исключение.