Visual Studio 2015测试资源管理器无法识别我的测试特征.
当我将它添加到DNX项目中的测试时:
[Trait("Category", "Test")]
Run Code Online (Sandbox Code Playgroud)
测试仍显示在No Traits组下的Test Explorer中(按Traits对测试进行分组).
我已经检查过,当我将ASP.NET5部署到azure web应用程序时,在Web响应中服务器是IIS,所以我想IIS平台处理程序用于将其重定向到Kestrel.所以我想知道是否可以直接在Kestrel上运行,以及有什么好处/缺点(可能无论是否在Azure中).我想它会更快一些,因为IIS将从pipline中排除,但我认为它不应该是太多的开销......
我有一个类库(包)项目,VS 2015 RTM中的新预览模板,我想从中执行Xunit测试.
解决方案构建正常但测试资源管理器没有找到任何测试.从project.json你可以看到我只针对net45而不是dnx,所以我使用的是xunit.runner.visualstudio.
{
"dependencies": {
"myproject": "",
"xunit": "2.1.0-*",
"xunit.runner.visualstudio": "2.1.0-*"
},
"frameworks": {
"net45": {
"frameworkAssemblies": {
"System.Runtime": "4.0.0.0"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我将项目类型更改为普通类库时,将选择测试.但是,由于我尝试测试的代码是一个类库(包)项目,从普通类库中引用它是有问题的,我希望这可行.这是(或某些变化)可能吗?
上下文
通常这个项目类型用于ASP.NET 5,Core CLR等.即使我只针对net45,我也在使用它,因为我想利用这个功能,我可以无缝地使用本地源代码代替一个nuget包(通过global.json项目属性).它使得更容易处理依赖于另一个我经常在本地进行更改的包.
似乎版本控制的工作方式与之前版本的.Net不同.project.json似乎使用了语法版本(我在网上看到的),格式为Major.Minor.Patch-Special.
我一直在本地运行ASP.NET 4.6和EF7的MVC项目,一切正常.我跑了dnx.ef migration用于创建数据库表的初始命令,一切运行正常.该应用程序工作.
使用Azure我有一个问题,我似乎无法运行dnx.ef migration命令所以我的SQL数据库是空的.我已经调试了Startup.cs并正确检索了连接字符串,但表中没有.
我使用Visual Studio 2015中的"发布"选项部署到我的Azure Web App.
如何在我的网络应用程序上运行此命令?还有另一种生成数据库的方法吗?
谢谢
我已经在.net平台上工作了几年,我必须说我对微软如何使.net跨平台兼容感到印象深刻.
我花了几个小时试图在mac上运行使用CoreCLR构建的小型hello world应用程序.它奏效了.虽然还有很多我还想了解的UNKNOWNS,但有一个问题我无法在google上找到答案.
如何自动部署dnx应用程序.我的意思是,你是否将你的aspnet 5应用程序编译成一个nuget包,然后在你的linux服务器上恢复它(我从未使用过Linux,所以不确定nuget是如何在那里工作的),并运行dnx命令?或者只是拉链并将其直接推送到服务器?
对不起,这对我来说都很新鲜,所以我的问题可能听起来很愚蠢.我只是想知道什么是我可以为我的asp.net 5应用程序实现持续交付的最佳方式.我的最终目标是在linux容器上托管我的应用程序.
对于集成测试,我想加载自定义XML配置.此XML位于集成测试项目内的文件夹中.
对于进一步的目标,我想使用新的DNX项目.我知道他们还在预览中.
本地测试工作正常.现在的问题是,我不能使用相对路径,因为测试系统当前目录信息不是我项目的项目文件夹.与AppVeyor相同的问题.
构建代理程序在另一个文件夹中启动,因此相对路径信息错误并失败.这里不要惊讶.
我试图用这个片段来解决这个问题:
public abstract class IntegrationTestBase
{
public static string CurrentPath()
{
string codeBase = typeof (IntegrationTestBase).Assembly.Location;
UriBuilder uri = new UriBuilder( codeBase );
string path = Uri.UnescapeDataString( uri.Path );
return Path.GetDirectoryName( path );
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是:由于新的DNX Runtime不返回我的项目和/或程序集的位置,它返回运行时文件夹:
C:/Users/ben/.dnx/runtimes/dnx-clr-win-x86.1.0.0-rc1-update1/bin/Microsoft.Dnx.Loader.dll
Run Code Online (Sandbox Code Playgroud)
如果我要求CodeBase或Executing/CallingAssembly,则行为相同.
使用"旧的"简单C#项目和MsTest,我得到了预期的路径.
Environment.CurrentDirectory 在AppVeyor上不起作用,因为进程未在项目文件夹中启动,然后此命令返回另一个路径(已启动项目的路径).
在这里使用相对路径的正确方法是什么?
我在批处理文件中有以下命令.当我尝试在Finalbuilder项目中使用Execute操作运行它时,仅运行第一个命令.所以,我计划将各个命令放在各种批处理文件中.任何人都可以帮我在延迟运行的单个批处理文件中运行所有命令(如果需要)?
命令:
dnvm list
dnvm install 1.0.0-beta8
dnvm use 1.0.0-beta8 –p
dnvm -Args alias default 1.0.0-beta8
Run Code Online (Sandbox Code Playgroud)
此外,我在使用FinalBuilder项目中的执行操作通过批处理文件运行最后一个命令时收到以下错误.
错误:Invoke-Expression:找不到接受参数的位置参数
是否有(最好是方便的)方法来设置C#项目,以便它使用.NET Core引入的基于project.json的格式和传统的csproj项目文件?如果是这样,怎么样?
我很好奇,因为看起来这是他们在CoreFX repo 中所做的,而不是使用Visual Studio生成的基于xproj的格式.
我有一个自定义模型绑定器,用于REST API,如下所示:
public class CustomQueryModelBinder : IModelBinder
{
public Task<ModelBindingResult> BindModelAsync(ModelBindingContext bindingContext)
{
if (!String.IsNullOrWhiteSpace(bindingContext.ModelName) && bindingContext.ModelType == typeof(short) && bindingContext.ValueProvider.GetValue(bindingContext.ModelName) != null)
{
short value;
var val = bindingContext.ValueProvider.GetValue(bindingContext.ModelName).FirstValue as string;
if (String.IsNullOrWhiteSpace(val))
{
return ModelBindingResult.SuccessAsync(bindingContext.ModelName, val);
}
else if (Int16.TryParse(val, out value) && value >= 0)
{
return ModelBindingResult.SuccessAsync(bindingContext.ModelName, value);
}
else
{
bindingContext.ModelState.AddModelError(bindingContext.ModelName, "The value is invalid.");
}
}
return ModelBindingResult.FailedAsync(bindingContext.ModelName);
}
}
Run Code Online (Sandbox Code Playgroud)
并且在URI中未指定自定义值的情况下,它应默认为有效值(大于0),但它始终默认为0,即使控制器如下所示:
public async Task<IActionResult> GetAsync(
[ModelBinder(BinderType = typeof(CustomQueryModelBinder))]short value = …Run Code Online (Sandbox Code Playgroud) dnx ×10
c# ×5
asp.net ×4
asp.net-core ×3
xunit ×3
.net ×2
.net-core ×1
appveyor ×1
azure ×1
batch-file ×1
command-line ×1
coreclr ×1
finalbuilder ×1
versioning ×1
xunit.net ×1