2013-10-15 3 views
4

Я пытаюсь использовать AutoMapper с моими модульными тестами, использующими атрибуты DeploymentItem, чтобы читать файлы во время выполнения.Тестирование модуля с помощью AutoMapper с использованием атрибута DeploymentItem не работает - PlatformNotSupportedException

Вот мой код:

[TestClass] 
    public class UnitTest1 
    { 
     [TestMethod] 
     [DeploymentItem("Samples/demo.csv")] 
     public void TestMethod1() 
     { 
      Mapper.CreateMap<A, B>(); 

      // test logic 
     } 
    } 

    class A 
    { 
     public string PropA { get; set; } 
     public bool PropB { get; set; } 
    } 

    class B 
    { 
     public string PropA { get; set; } 
     public bool PropB { get; set; } 
    } 

Я получаю сообщение об ошибке на этой линии:

Mapper.CreateMap<A, B>(); 

но когда я удалить DeploymentItem атрибут тест просто отлично работает.

Я написал this article от создателя AutoMapper, но, похоже, не рассматривал проблему.

Сведения об исключении ниже:

System.TypeInitializationException was unhandled by user code 
    HResult=-2146233036 
    Message=The type initializer for 'AutoMapper.TypeMapFactory' threw an exception. 
    Source=AutoMapper 
    TypeName=AutoMapper.TypeMapFactory 
    StackTrace: 
     at AutoMapper.TypeMapFactory..ctor() 
     at AutoMapper.Mapper.<.cctor>b__0() 
     at AutoMapper.Internal.LazyFactory.LazyImpl`1.get_Value() 
     at AutoMapper.Mapper.get_ConfigurationProvider() 
     at AutoMapper.Mapper.get_Configuration() 
     at AutoMapper.Mapper.CreateMap[TSource,TDestination]() 
     at TNS.T4.MVC.Tests.Mocks.UnitTest1.TestMethod1() in c:\tns.visualstudio.com\Research Platform\Development\T4\TNS.T4.MVC.Tests\Mocks\UnitTest1.cs:line 13 
    InnerException: System.PlatformNotSupportedException 
     HResult=-2146233031 
     Message=This type is not supported on this platform IDictionaryFactory 
     Source=AutoMapper 
     StackTrace: 
      at AutoMapper.Internal.PlatformAdapter.Resolve[T](Boolean throwIfNotFound) 
      at AutoMapper.TypeMapFactory..cctor() 
     InnerException: 

Спасибо!

+0

Добро пожаловать в SO, Хавьер. – Brian

+0

Спасибо Брайан :) –

+0

Reg: - «но когда я удаляю атрибут DeploymentItem, тест просто отлично работает». Вы в этом уверены. Я получаю ту же ошибку даже без атрибута DeploymentItem – Spock

ответ

2

Я не думаю, что это элемент развертывания. Я повторил проблему, но ушел после установки install-пакета AutoMapper.NET35

+0

Я установил пакет AutoMapper и только что установил тот, который вы упомянули, и сделал трюк. Спасибо! –