Я новичок в PEX, Visual Studio и мире .NET, тем не менее я
сгенерировал несколько тестов для C #. Я прочитал, что PEX также может анализировать
Программы .NET написаны на любом языке .NET, поэтому на данный момент я
пытаясь заставить PEX работать с C (я сохранил код на C ++
проект. Это правильный подход?). Поскольку нет Visual Studio
Надстройка PEX для C ++, я пытался использовать интерфейс командной строки.
В учебном пособии «Параметризованное модульное тестирование с Microsoft Pex» это
говорит, что у меня должна быть «сборка .NET», заканчивающаяся на .dll или .exe
который содержит класс, аннотированный с помощью PexClassAttribute и public
метод аннотирован с помощью PexMethodAttribute. Так как только учебник
предоставляет пример для C #, я попытался запустить PEX на .exe без
любая аннотация. Поэтому я скомпилировал свой код в Visual Studio, получил мой
ассемблер light.exe и попытался запустить PEX на нем. Я получил следующее
ошибка:
Microsoft Pex v0.94.51006.1 -- http://research.microsoft.com/pex --
v4.0.30319
Copyright (c) Microsoft Corporation 2007-2010. All rights reserved.
unexpected error: error while loading of 'light' (currently running
with 4 bytes/pointer).
LAUNCHER FAILED
unexpected failure: error while loading assembly (-1006 - 0xfffffc12)
Итак, у меня есть следующие вопросы:
Pex работает только на .NET сборках. Это Можно использоваться с любым языком .NET, но C не является таковым, и даже если бы это было так, он все равно работал бы только на чистом коде C, написанном для целевой CLR, а не на любом собственном коде C (который у вас есть).
Так что не поможет, что вы загрузили свой код C как проект C ++, так как даже код C ++ не может быть проанализирован Pex, если он не нацелен на CLR.
Других решений пока нет …