我正在测试一些业务对象的Save()方法.为了保存对象,我需要从Configuration Manager读取连接字符串.但我得到的只是空值.我的设置在web站点web.config中.如何在测试运行时获取.我需要其他配置吗?
我正在使用MSTest,我的大多数单元测试都没有TestCategory属性,但我想把一些测试放到"慢"类别中.然后我希望能够轻松运行所有未分配类别的测试.
当我进入测试视图时,我可以按测试类别进行过滤,但我无法输入关键字为空.我可以很容易地找到我的"慢",但如何找到我的非慢速?我试图避免在我的所有测试中放置测试类别.
我想这不是世界末日,如果我必须...搜索和替换应该全部,但如果有办法找到未分类,我想知道.
正如问题所说:
如何使用Visual Studio 11 Dev Preview进行MSTEST?
我试图找到mstest.exe,但它不存在于其通常的位置:
C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\Common7\IDE
我写了一些单元测试,没有办法运行它们= \
我们需要验证我们生成的xml文档的内容.是否有任何框架可以帮助您轻松提取和验证文档的内容?
我们需要知道的事情
如果没有断言,那么无关紧要,这可以通过MSTest来完成
我有一个测试方法......
[TestMethod]
public void MainViewModel_PropertiesReflectDataEntityProperties()
{
// Arrange
var facilityDataEntity = MockRepository.GenerateStub<FacilityDataEntity>();
var shopOrderDataEntity = MockRepository.GenerateStub<ShopOrderDataEntity>();
// Act
MainViewModel mainViewModel = new MainViewModel(facilityDataEntity, shopOrderDataEntity);
// Assert
Assert.AreSame(facilityDataEntity.Value, mainViewModel.FacilityValue);
}
Run Code Online (Sandbox Code Playgroud)
......并且测试通过了.但是,我还没有实现DataEntity属性到MainViewModel属性的映射!怎么会这样?我以为AreSame会检查两个引用是否指向同一个实例.
public class MainViewModel
{
private readonly FacilityDataEntity facilityDataEntity;
private readonly ShopOrderDataEntity shopOrderDataEntity;
public MainViewModel(FacilityDataEntity facilityDataEntity)
{
this.facilityDataEntity = facilityDataEntity;
}
public MainViewModel(FacilityDataEntity facilityDataEntity, ShopOrderDataEntity shopOrderDataEntity)
{
this.facilityDataEntity = facilityDataEntity;
this.shopOrderDataEntity = shopOrderDataEntity;
}
public ShopOrderDataEntity ShopOrderDataEntity
{
get { return shopOrderDataEntity; }
}
public FacilityDataEntity FacilityDataEntity
{
get { return …Run Code Online (Sandbox Code Playgroud) 我有一点问题.(在单元测试中) - 我对一个方法引发异常的类进行单元测试.结构是:
public bool DoA()
{
ThrowException();
return true;
}
public void DoB()
{
ThrowException();
}
private static void ThrowException()
{
throw new NotSupportedException();
}
Run Code Online (Sandbox Code Playgroud)
CodeCoverage的结果不是100% - 来自DoA()的return语句和结束花括号以及来自Do()B的结束花括号不在codeCoverage下(因为它们未到达).我知道,这对于unittest并不重要,因为我仍然检查了功能,但仅仅是为了我 - 它可能以及我如何达到完整的CodeCoverage?也许通过排除?(可能更改测试代码/程序代码)
有一种方法,但它很糟糕,我正在寻找更清洁的东西.
我可以去菜单选择Run All Test in Solution.这会将所有测试带到会话中.但并非所有测试都是可运行的 - 有一组测试专为调试和集成而设计.这些测试有不同的类别.
我的目标是仅运行具有特定类别的解决方案中的所有测试.为此,我希望让ReSharper扫描我的解决方案,应用过滤器,然后运行生成的集合.
那可能吗?
今天我们意识到有些测试会抛出异常,但所有测试都会"通过".实际上,异常文本以绿色显示.
这有意义吗?
有没有办法让测试失败,如果未处理异常(我知道大部分时间都会发生)?
截图:

测试方法:
[TestMethod]
public void CommunicationCore_CommunicationController_ConnectRequestWellProcessed()
{
// Arrange
IUnityContainer container = new UnityContainer();
ICommonInitializer initializer = new CommonInitializer(container);
initializer.Initialize(); // register all types
DriveConnection connectionSettings = CreateFakeConnetionSettings(1);
Transaction transaction = null;
ICommunicationController controller = container.Resolve<ICommunicationController>();
object locker = new object();
// Act
controller.Connect(
connectionSettings,
result =>
{
transaction = result;
lock (locker)
{
Monitor.Pulse(locker);
}
});
// asyncronous communication wait for the process of the message
lock (locker)
{
Monitor.Wait(locker, 10000);
}
// Assert
bool connectSuccessfully …Run Code Online (Sandbox Code Playgroud) 我用MS Test写了一个测试方法.我已经为测试目的写了两个断言.我故意让测试用例失败,但我不知道哪个部分失败了.
public void CalculatorConstructorTest()
{
Calculator concreteObject = new Calculator();
Assert.IsTrue(concreteObject == null, "Construction failed");
Assert.IsTrue(concreteObject.Total == 0, "Value should be initially 0");
}
Run Code Online (Sandbox Code Playgroud)
正如在第一个断言中它将失败.此外,我的总数大于0.所以第二个也将失败.但是说其中一个是有效的.那么我如何确定哪个断言,我的测试用例失败了?
提前致谢.
我正在尝试使用新的"mstest v2"框架,但在从命令行运行mstest.exe测试时遇到问题.具体来说,ExpectedExceptionAttribute和DeploymentItemAttribute不起作用.
这是我的样本测试:
[TestMethod]
[ExpectedException(typeof(NotImplementedException))]
public void ExpectedExceptionShouldWork()
{
throw new NotImplementedException(
"This exception should not cause the test to fail");
}
Run Code Online (Sandbox Code Playgroud)
我很确定它是由从Microsoft.VisualStudio.TestPlatform.TestFramework程序集而不是从Microsoft.VisualStudio.QualityTools.UnitTestFramework中拾取的属性引起的 - 然后mstest.exe无法识别它们.
我们在构建服务器(Teamcity)中运行mstest.exe,并且测试在那里失败,即使它们在IDE中成功.在本地运行时,Mstest.exe也会失败
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\MSTest.exe" /testcontainer:bin\Debug\Dummy.Test.dll
Run Code Online (Sandbox Code Playgroud)
当我的项目引用Microsoft.VisualStudio.QualityTools.UnitTestFramework时,它可以在命令行和IDE中工作.
如果我然后添加一个nuget引用到MSTest.TestFramework v 1.1.13,我得到一个编译错误:
Error CS0433
The type 'TestClassAttribute' exists in both
'Microsoft.VisualStudio.QualityTools.UnitTestFramework,
Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and
'Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
Run Code Online (Sandbox Code Playgroud)
当我删除对Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用时,它在IDE中编译并工作 - 但不是从命令行.测试已运行,但由于抛出异常而失败.
我们真的想使用来自mstest v2的新东西,比如[DataTestMethod],但是我们不能在构建服务器上使构建失败.
有没有解决方法?它不只是关于[ExpectedException]?其他属性如[AssemblyInitialize]似乎也被忽略了?