我是c++的新手,我正在开发Arduino与PlatformIO &;VS Code on MacOS 11.6.5.
在PlatformIO文档之后,我设置了一个简单的测试,像这样:#include <unity.h>
#include <iostream>
void test_something()
{
std::cout << "Test running..." << std::endl;
TEST_ASSERT_TRUE(true);
}
int main(int argc, char **argv)
{
UNITY_BEGIN();
RUN_TEST(test_something);
UNITY_END();
}
当我运行platformio test --environment local
时,我在终端上看到测试结果,但没有std::cout
的输出。
(我发现了一个在不使用PlatformIO时从测试中打印到cout的示例,PlatformIO的repo有很多测试示例,但这些示例似乎都不涉及cout。)
VS Code IntelliSense抱怨'无法打开源代码文件"iostream"',但我猜这是无关的,因为PlatformIO似乎没有问题编译它。
任何提示感谢!
好的,感谢@Ulrich Eckhardt的帮助,原来我只需要为Unity指定--verbose
模式,即:
platformio test --environment local --verbose
然后有一大堆方法可以写到终端:
cout << "Hello" << endl;
cout << "Hellon";
fprintf(stdout, "Hello");
putchar('a');
也有Unity打印方法,不确定的优点& &;缺点:
UnityPrint("Hello");
UnityPrintLen("Print this, but not this", 10);
UNITY_OUTPUT_CHAR('a');