Я хотел бы выполнить код JavaScript из сборки С# и получить результаты кода JavaScript, возвращаемого вызывающему С# -коду.
Легче определить, что я не пытаюсь сделать:
-
Я не пытаюсь вызвать функцию JavaScript на веб-странице из моего кода.
-
Я не пытаюсь загрузить элемент управления WebBrowser.
-
Я не хочу, чтобы JavaScript выполнял вызов AJAX на сервер.
То, что я хочу сделать, это написать единичные тесты в JavaScript и затем выполнить модульные тесты на выходе JSON, даже обычный текст будет в порядке. Затем я хочу иметь общий С# класс/исполняемый файл, который может загружать файл, содержащий JS, запускать JS-модульные тесты, ломать/загружать результаты и возвращать данные о пропуске/сбое во время задачи после сборки.
Я думаю, что это возможно с использованием старого ActiveX ScriptControl, но похоже, что это должно быть .NET способ сделать это без использования SilverLight, DLR или чего-либо еще, что еще не отправлено. У кого-нибудь есть идеи?
update: Из блога Brad Abrams
namespace Microsoft.JScript.Vsa
{
[Obsolete("There is no replacement for this feature. " +
"Please see the ICodeCompiler documentation for additional help. " +
"http://go.microsoft.com/fwlink/?linkid=14202")]
Разъяснение: У нас есть модульные тесты для наших функций JavaScript, которые написаны на JavaScript с использованием структуры JSUnit. Прямо сейчас во время нашего процесса сборки мы должны вручную загрузить веб-страницу и нажать кнопку, чтобы убедиться, что все тесты модуля JavaScript пройдены. Я хотел бы иметь возможность выполнять тесты во время процесса после сборки, когда выполняются наши автоматические тесты на модуле С# и сообщают об успехе/неудаче наряду с модульными тестами С# и используют их в качестве индикатора того, будет ли сборка.