Встраивание интерпретатора Ruby в приложении C++

Попробуйте использовать TestContext.WriteLine(), который выводит текст в результатах теста.

Пример:

    [TestClass]
    public class UnitTest1
    {
        private TestContext testContextInstance;

        /// 
        ///  Gets or sets the test context which provides
        ///  information about and functionality for the current test run.
        ///
        public TestContext TestContext
        {
            get { return testContextInstance; }
            set { testContextInstance = value; }
        }

        [TestMethod]
        public void TestMethod1()
        {
            TestContext.WriteLine("Message...");
        }
    }

«Магия» описана в MSDN как «База тестов автоматически устанавливает свойство, которое затем можно использовать в модульных тестах».

19
задан andygeers 9 March 2009 в 13:56
поделиться

3 ответа

Вы на правильном пути. Ключ должен сделать что-то подобное разделу по Понятия Встраивания в ссылке, которую Вы отправили. Простыми словами это немного больше, чем:

ruby_init();
ruby_script("some_script");

Вы, возможно, должны скопировать по весь эти #ifdef материал от main.c для получения всего работа. С того времени это - вопрос создания API к Вашим функциям C++, которые Вы хотите представить, и в зависимости от Вашего дизайна, многопоточности вещь.

4
ответ дан 30 November 2019 в 03:16
поделиться

Вы могли всегда перепроектировать способ, которым сценарии работают для удовлетворения механизму выполнения сценария вместо того, чтобы пытаться заставить механизм работать с исходными парадигмами сценариев.

Так, если у Вас было это:

proc:
  action 1
  action 2
  sleep a bit
  action 3
end

, который потребовал бы, чтобы сценарий был приостановлен на строке сна, сделайте это:

proc
  action1
  action2
  set timer (time, callback_proc)
end

callback_proc
  action3
end

, который позволяет механизму выполнения сценариев закончить каждый метод аккуратно. Не требовалось бы много изменений в стороне хостинга - каждая версия требует некоторой формы системы событий, которая может перезапустить механизм выполнения сценария.

4
ответ дан 30 November 2019 в 03:16
поделиться

Существует руководство о том, как встроить ruby ​​в приложение C ++. Это может быть полезно. В противном случае перейдите к документации Ruby . Также может оказаться полезной статья Embed Ruby in C .

3
ответ дан 30 November 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: