Visual Studio C++ 测试 "name must be a namespace name" 错误

Visual Studio C++ testing "name must be a namespace name" error

这是我所做的:

我首先创建了一个Win32ConsoleApplication

这是其中的代码:

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World!" << endl;

    system("pause");
    return 0;
}

然后我添加一个本地单元测试项目

在单元测试解决方案中,我右键单击References选项卡,然后通过ConsoleApplication2(项目名称)添加引用.

然后我去unittest.cpp,这是我看到的:

#include "stdafx.h"
#include "CppUnitTest.h"

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace UnitTest8
{       
    TEST_CLASS(UnitTest1)
    {
    public:

        TEST_METHOD(TestMethod1)
        {
            // TODO: Your test code here
        }

    };
}

在最顶部我添加了我自己的命名空间,如下所示:

using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace ConsoleApplication2;

但是说 name must be a namespace name 是一个错误。为什么是这样?我做错了什么?

您想使用未在任何地方定义的命名空间。为了使用您想要的命名空间,您必须包含该文件及其定义。

例如用

创建文件 ConsoleApplication2.h
namespace ConsoleApplication2
{}

用您的函数填充它,然后将该文件包含到 unittest.cpp 中以使用命名空间:

#include "stdafx.h"
#include "CppUnitTest.h"
#include "ConsoleApplication2.h"

using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace ConsoleApplication2;
...