标签: vs-unit-testing-framework

msbuild - 无法解析UnitTestFramework引用

我正试图在Jenkins中运行msbuild.当它到达UniTest-Project时会发生错误:

Project "C:\Program Files (x86)\Jenkins\jobs\***\workspace\***.sln" (1) is building "C:\Program Files (x86)\Jenkins\jobs\***\workspace\***.unitTests\***.unitTests.csproj" (4) on node 0 (default targets).
Project file contains ToolsVersion="4.0", which is not supported by this version of MSBuild. Treating the project as if it had ToolsVersion="3.5".
ResolveAssemblyReferences:
  Primary reference "Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL".
      Could not find dependent files. Could not load file or assembly 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded …
Run Code Online (Sandbox Code Playgroud)

msbuild vs-unit-testing-framework jenkins

6
推荐指数
1
解决办法
1万
查看次数

由于缺少.config文件而导致单元测试失败

我是单元测试的新手,所以我可能误解了一些大的东西,但我被要求为我的WCF服务创建一些单元测试.这是一个非常简单的服务,它执行存储过程并返回结果.我操作的第二行是这样的:

string conn = ConfigurationManager
    .ConnectionStrings["AtlasMirrorConnectionString"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)

部署服务时一切正常,但在单元测试下,配置文件似乎变得不可见. ConfigurationManager.ConnectionStrings["AtlasMirrorConnectionString"]成为空引用并相应地抛出.

如何在测试中包含我的配置文件?现在,我能够测试的唯一行为是丢失配置文件的处理,这不是非常有用.

c# wcf web-config vs-unit-testing-framework

6
推荐指数
1
解决办法
5158
查看次数

C#stubbing.每个可测试对象的接口?

我已经看到了关于'如何存根你的课程以便你可以控制SUT内发生的事情'的多个答案.

他们说一件事:

创建一个接口并使用依赖注入注入该接口,并使用随后注入SUT的相同接口创建存根.

但是,我在以前的工作场所学到了什么:

如果进行单元测试,则测试所有类/功能.

这是否意味着对于每个具有特定功能布局的类,您必须创建一个接口?

这意味着类/文件的数量几乎是两倍.

如下面的例子所示,这是"走的路"还是我在单元测试过程中遗漏了什么?

注意:我使用的是VS2012 Express.这意味着没有'Faker'框架.我正在使用'标准'VS2012单元测试框架.

作为一个非常非常简单的例子,它允许我将传递给SUT的每个接口存根.

IFoo.cs

public interface IFoo
{
    string GetName();
}
Run Code Online (Sandbox Code Playgroud)

Foo.cs

public class Foo : IFoo
{
    public string GetName()
    {
        return "logic goes here";
    }
}
Run Code Online (Sandbox Code Playgroud)

IBar.cs:

public interface IBar : IFoo
{
    IFoo GetFoo();
}
Run Code Online (Sandbox Code Playgroud)

Bar.cs:

public class Bar : IBar
{
    public string GetName()
    {
        return "logic goes here";
    }

    public IFoo GetFoo()
    {
        return null; // some instance of IFoo
    }
}
Run Code Online (Sandbox Code Playgroud)

IBaz.cs:

public interface …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing vs-unit-testing-framework

6
推荐指数
2
解决办法
2296
查看次数

在Entity Framework 4.0代码中首先找到.csdl,.ssdl和.msl文件的位置?

我想运行与努力测试,要做到这一点,我需要指定一个ConnectionString中还包含一个参考.csdl, .ssdl.msl文件.(非工作)连接字符串现在看起来像这样:

<add name="SQLAzureConnection" connectionString=
 "metadata=res://*/Model.projectContext.csdl|
res://*/Model.projectContext.ssdl|res://*/Model.projectContext.msl;
  provider=System.Data.SqlClient;
  provider connection string=&quot;Data Source=(LocalDb)\v11.0;Initial Catalog=Database_Nieuw;Integrated Security=false;MultipleActiveResultSets=False&quot;"
 providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

Model.projectContext部分是错的,但我不知道应该是什么.

当我使用此字符串时,我在使用此连接字符串与Effort建立模拟数据库连接的测试中收到以下错误.

Test: failed
Result Message: Initialization method  
project.Tests.Controllers.ShoppingCartTest.Initialize threw exception. 
System.InvalidOperationException: System.InvalidOperationException: Resource res://*
/Model.seashell_brawl_corveeContext.csdl not found..
Run Code Online (Sandbox Code Playgroud)

我不知道在哪里可以找到这个.csdl文件,我只知道它是必要的.我无法从我的创建这些.emdx文件,因为我有一个代码,第一个数据库,并单击鼠标右键在设计师不给选项Update database from model另外一个问题给了一个解决方案.我还将元数据工件处理"选项"设置为"嵌入输出程序集".

有谁知道我在哪里可以找到这些文件以及我如何正确引用它们?

/编辑:

好吧,我现在很清楚,代码第一个项目中不存在这些文件.通过在注释中使用user20 ...的提示,连接字符串现在似乎可以正常工作.一个新问题如下:

`Test Outcome:  Failed  error 0040: The Type date is not qualified with a namespace or 
alias. Only primitive types can …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework connection-string edmx vs-unit-testing-framework

6
推荐指数
1
解决办法
6358
查看次数

来自Microsoft.VisualStudio.TestTools.UnitTesting的QueueBackgroundWorkItem

我有一个Web应用程序,通过QueueBackgroundWorkItem在后台进行一些处理.

我正在为应用程序中的功能连接单元测试,当它尝试调用它时,我收到以下错误:

System.InvalidOperationException occurred
  HResult=-2146233079
  Message=Operation is not valid due to the current state of the object.
  Source=System.Web
  StackTrace:
       at System.Web.Hosting.HostingEnvironment.QueueBackgroundWorkItem(Func`2 workItem)
Run Code Online (Sandbox Code Playgroud)

比较从单元测试调用它到作为正在运行的Web服务器的一部分调用它之间的环境,我发现AppDomain/HostingEnvironment是不同的.

如果没有完整的Web应用程序部署进行测试,有没有办法构建单元测试,以便后台工作项可以在适当的上下文中运行?

优选地,在不改变现有目标代码的情况下,仅通过改变测试代码 - 如果不可能,可以使用IOC根据其上下文在适当的后台线程中运行后台工作项.

更新

虽然可能有一种更优雅的方式,但这种方法很有效.基本上只有在从托管环境调用时才运行它后台:

private void GetSomeData(SomeCriteria criteria, Dictionary<int, List<Tuple<int, string>>> someParam)
{
    if (System.Web.Hosting.HostingEnvironment.IsHosted)
    {
        System.Web.Hosting.HostingEnvironment.QueueBackgroundWorkItem((token) =>
        {
            GenerateSomeData(token, criteria, someParam);
        });
    }
    else
    {
        CancellationToken token = new CancellationToken();
        GenerateSomeData(token, criteria, someParam);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net vs-unit-testing-framework

6
推荐指数
1
解决办法
599
查看次数

Visual Studio的C#单元测试框架?

我的导演告诉我,微软的Visual Studio有一个单元测试框架,但不知道该工具的名称是什么.你们中的任何人都可以暗示一下吗?

c# unit-testing visual-studio vs-unit-testing-framework

5
推荐指数
1
解决办法
3480
查看次数

是否可以在 Visual Studio 或 resharpher 中运行单元测试用例之前避免构建

考虑到我只更改了一个测试/单元测试项目,如果我尝试运行它,它将构建单元测试项目(已接受)和所有其他开发项目(这并不是真正需要的)。

我怎样才能避免这种情况?我在解决方案中有 100 多个项目,因此由于项目构建,每个单元测试用例的运行时间都非常长。

unit-testing build visual-studio-2010 vs-unit-testing-framework

5
推荐指数
1
解决办法
1112
查看次数

在 Visual Studio 2012 中单元测试 C++ 控制台应用程序

我正在尝试在 Visual Studio 中创建一个单元测试项目。我想测试的代码是用 C++ 编写的,我想用 C++ 编写测试。这可能吗?

此外,我发现的只是关于导出静态或动态库的项目。我的项目什么都不导出,它是一个简单的控制台应用程序,我不想把它变成一个库。

我在网上尝试了各种教程,我得到的要么是关于测试静态/动态库的指导方针(我一无所知),要么最终导致我unresolved external symbol..在编译测试时遇到错误。

是否有单元测试、项目模板,我只是在其中声明我要测试的解决方案在哪里?

c++ unit-testing vs-unit-testing-framework visual-studio-2012

5
推荐指数
1
解决办法
2179
查看次数

测试失败后如何执行代码

我正在为图书馆创建单元测试.这个库连接到数据源然后我正在做一些测试Stuff之后数据源将被断开连接.

如果其中一个测试失败,则方法终止,我无法执行断开连接功能.

这是一个样本,以说明以上描述:

[TestMethod]
public void Test()
{
    var datasourceObject = new DatasourceObject("location-string");
    datasourceObject.Connect();

    // Do some Stuff with Asserts

    datasourceObject.Disconnect(); // must be executed
}
Run Code Online (Sandbox Code Playgroud)

有没有最好的实践呢?

c# unit-testing mstest vs-unit-testing-framework

5
推荐指数
1
解决办法
1969
查看次数

Visual Studio C++ 单元测试(非托管)

我正在为一些非托管 C++ 代码设置单元测试套件,但我有一些问题。

设置

我使用Visual C++Test→将该项目添加到我的解决方案中Native Unit Test Project

本机单元测试项目创建

代码

为了弄清楚这个测试框架中的事物是如何分组的,以及什么时候运行什么初始化,我用CppUnitTest.h 顶部的unittest1.cpp修改版本替换了源文件 ( )的内容USAGE EXAMPLE

#include <CppUnitTest.h>
#include <string>

using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using std::string;

BEGIN_TEST_MODULE_ATTRIBUTE()
TEST_MODULE_ATTRIBUTE(L"Date", L"2010/6/12")
END_TEST_MODULE_ATTRIBUTE()


static string Indent("");

void openBlock()
{
    Logger::WriteMessage((Indent + "{").c_str());
    Indent += "  ";
}

void closeBlock()
{
    Indent.resize(Indent.size() >= 2 ? (Indent.size() - 2) : 0);
    Logger::WriteMessage((Indent + "}").c_str());
}


TEST_MODULE_INITIALIZE(ModuleInitialize)
{
    Logger::WriteMessage((Indent + "In Module Initialize").c_str());
    openBlock();
}

TEST_MODULE_CLEANUP(ModuleCleanup)
{
    closeBlock(); …
Run Code Online (Sandbox Code Playgroud)

c++ unit-testing visual-studio vs-unit-testing-framework visual-studio-2015

5
推荐指数
0
解决办法
2774
查看次数