Visual Studio C ++测试“名称必须是命名空间名称”错误

时间:2017-02-22 02:56:10

标签: c++ visual-studio unit-testing testing visual-studio-2012

这是我做的:

我首先创建了一个 Win32ConsoleApplication

以下是代码:

function extend(out){
    if (!out) {
        out = {};
    }
    ...
}

然后我添加原生单元测试项目

在单元测试解决方案中,我右键单击参考标签,然后按 ConsoleApplication2 (项目名称)参考添加。

然后我转到 unittest.cpp ,这就是我所看到的:

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

using namespace std;

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

    system("pause");
    return 0;
}

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

#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; 是错误的。为什么是这样?我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

例如,使用

创建文件 ConsoleApplication2.h
namespace ConsoleApplication2
{}

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

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

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