Попробуйте использовать 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 как «База тестов автоматически устанавливает свойство, которое затем можно использовать в модульных тестах».
Вы на правильном пути. Ключ должен сделать что-то подобное разделу по Понятия Встраивания в ссылке, которую Вы отправили. Простыми словами это немного больше, чем:
ruby_init();
ruby_script("some_script");
Вы, возможно, должны скопировать по весь эти #ifdef
материал от main.c для получения всего работа. С того времени это - вопрос создания API к Вашим функциям C++, которые Вы хотите представить, и в зависимости от Вашего дизайна, многопоточности вещь.
Вы могли всегда перепроектировать способ, которым сценарии работают для удовлетворения механизму выполнения сценария вместо того, чтобы пытаться заставить механизм работать с исходными парадигмами сценариев.
Так, если у Вас было это:
proc:
action 1
action 2
sleep a bit
action 3
end
, который потребовал бы, чтобы сценарий был приостановлен на строке сна, сделайте это:
proc
action1
action2
set timer (time, callback_proc)
end
callback_proc
action3
end
, который позволяет механизму выполнения сценариев закончить каждый метод аккуратно. Не требовалось бы много изменений в стороне хостинга - каждая версия требует некоторой формы системы событий, которая может перезапустить механизм выполнения сценария.
Существует руководство о том, как встроить ruby в приложение C ++. Это может быть полезно. В противном случае перейдите к документации Ruby . Также может оказаться полезной статья Embed Ruby in C .