Есть ли способ построить модульные тесты VS без AnyCPU?

Я разрабатываю C# API для библиотеки HTML5+JavaScript — в качестве промежуточного слоя использую CefSharp. Теперь мне нужно создать несколько модульных тестов, чтобы убедиться, что API работает. Проблема в том, что CefSharp нельзя (просто) использовать с AnyCPU, тогда как модульные тесты VisualStudio ДОЛЖНЫ быть построены для AnyCPU. Это приводит к ошибке, когда я пытаюсь запустить тесты: CefSharp.Common will work out of the box if you specify platform (x86/x64).

Есть ли способ обойти любое из этих ограничений?
Я знаю, что CefSharp каким-то образом должен быть совместим с AnyCPU, но мне не удалось запустить его.


ИЗМЕНИТЬ

Теперь я не получаю первую ошибку, но у меня есть другая:

System.IO.FileNotFoundException: Could not load file or assembly CefSharp, Version=57.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138 or one of its dependencies. The specified module could not be found.
File name: CefSharp, Version=57.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138
   in CefSharp.CefSharpApp.OnBeforeChildProcessLaunch(CefSharpApp* , scoped_refptr<CefCommandLine>* commandLine)

.

Это журнал Fusion View:

LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TESTWINDOW\vstest.executionengine.x86.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.

LOG: Post-policy reference: CefSharp, Version=57.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138

LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/CefSharp.DLL
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/CefSharp/CefSharp.DLL
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/Extensions/CefSharp.DLL
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/Extensions/CefSharp/CefSharp.DLL
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/CefSharp.EXE
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/CefSharp/CefSharp.EXE
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/Extensions/CefSharp.EXE
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/Extensions/CefSharp/CefSharp.EXE

Связанная проблема GitHub здесь.

Если вас заинтересовал мой код: ссылка на GitHub (не очень актуально)


person m93a    schedule 23.04.2017    source источник
comment
Вы видели это? github.com/cefsharp/CefSharp/issues/1714? Это говорит что-то о свойстве проекта CefSharpAnyCpuSupport   -  person Maria Ines Parnisari    schedule 24.04.2017
comment
Я только что создал проект модульного тестирования для x86 и x64. Почему вы говорите, что это невозможно, или я что-то упускаю?   -  person CodingYoshi    schedule 24.04.2017
comment
Вам следует рассмотреть возможность использования CefGlue или ChromiumFx, если вам нужно использовать среду модульного тестирования.   -  person amaitland    schedule 24.04.2017
comment
@amaitland В конце концов, я сделал наоборот. Вместо того, чтобы менять CefSharp на что-то другое (что было бы болезненным процессом), я заменил модульные тесты VisualStudio на NUnit.   -  person m93a    schedule 02.05.2017


Ответы (1)


Первая проблема

Я обнаружил, что недостаточно установить Test>Test Settings>Default Architecture, мне также пришлось установить весь проект для сборки как x86 или x64. Сначала вам нужно открыть диспетчер конфигурации.

Диспетчер конфигурации

.

Затем вам нужно создать платформы x82 и x64 для вашего тестового проекта.

Добавить новую платформу

.

Обязательно обратите внимание на флажок, который чаще всего пропускают в Visual Studio. Этот флажок необходимо установить, если создаваемая вами платформа не существует ни в одном другом проекте вашего решения, и снять флажок в противном случае. Я уверен, что это также самый бесполезный флажок в Visual Studio, вы можете проголосуйте за его удаление, если хотите.

Создать платформу, не пропустить флажок

Теперь ваши тесты будут построены для выбранной вами платформы!

.

Вторая проблема

Это дубликат еще одного SO-вопроса и, вероятно, вызван CefSharp будучи пакетом NuGet, написанным на C++/CLI. Я не очень понимаю это, но мудрый человек на GitHub нашел решение.

person m93a    schedule 02.05.2017