我将 ASP.NET 5 与 XUnit 一起使用,而 Visual Studio 在测试资源管理器中找不到我的测试。
我已经多次重建我的项目以使它们刷新。我的测试资源管理器是空的。
有任何想法吗?
这是我的 project.json 文件:
{
"version": "1.0.0-*",
"description": "TestLibrary",
"authors": [ "brivell" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"dependencies": {
"AutoFixture": "3.38.1",
"AutoFixture.AutoMoq": "3.38.1",
"BusinessLibrary": "1.0.0-*",
"xunit": "2.1.0",
"xunit.runner.dnx": "2.1.0-rc1-build204"
},
"frameworks": {
"dnx451": { }
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的一个测试示例:
[Fact]
public void Traditional()
{
// Arrange
var sut = new Calculator();
// Act
sut.Subtract(1);
// Assert
Assert.True(sut.Value < 0);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试设置需要凭据的NuGet包源.
我有最新版本的Visual Studio 2015,其中包含最新版本.我知道如何通过VS2015中的UI添加包源,但是这样做时无法指定凭据.
他们要我运行的命令是:
NuGet Sources Add -Name "telerik.com" -Source "https://nuget.telerik.com/nuget" -UserName "<your login email>" -Password "<your password>"
Run Code Online (Sandbox Code Playgroud)
我知道我需要一个nuget.exe来运行这个命令,但是有一种方法可以通过VS直接执行此操作而无需下载任何内容吗?
如果我下载NuGet.exe,打开命令提示符并导航到它以运行该命令,然后我可以从Visual Studio的NuGet包管理器UI中查看它并从Visual Studio的NuGet包管理器控制台访问它吗?我对它如何与Visual Studio内置的NuGet包管理器集成感到困惑.
telerik visual-studio nuget nuget-package visual-studio-2015
我有一个 ProductsController,我想创建一个复制产品的操作方法。它只需要一个参数,它是一个 Id,它促使我想要使用一个简单的 GET 请求。不过,有些东西告诉我 GET 在这里没有意义。我真的使用 POST 并将单个 Id 传递给此方法吗?
这是我想出的:
// COPY: api/products/{id}/copy
[HttpPost("{id}/copy")]
public void Copy(int id)
{
_productManager.Copy(sourceProductId: id);
}
Run Code Online (Sandbox Code Playgroud) 我在我的asp.net core 1.0 web api(.NET Framework)program.cs中执行以下操作,以指定我希望我的web api exe运行的端口仅用于开发目的:
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls(new string[1] { "http://*:12012" })
.Build();
host.Run();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我发布到生产时,这行会导致WebAPI出错,因为我希望exe使用生产web-api url即productionWeb/api/values而不是localhost:12012/values
无论如何,我可以充分利用这两个世界能够指定我希望它在端口12012上运行以用于开发目的,以及生产URL用于产品目的吗?
我目前的解决方案是在发布之前注释掉该行.
我正在使用最新版本的XUnit,我按照这些步骤启动了类库(.NET Core)项目.
我整个解决方案中的所有其他库仅使用4.6.1,因此我将project.json中的框架部分更改为以下内容:
{
"frameworks": {
"net461": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.0.1-rc2-24027"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的解决方案中一切正常.我能够运行测试,所有对其他库的引用工作正常,即使它们只有461.基本上,在我的解决方案中,我有几个其他类库(.NET Core),我的XUnit库依赖于它们,所以我只能通过visual studio引用它们,并且引用被添加到XUnit项目的project.json文件中.
出现了我需要执行以下操作的情况:
仅将XUnit项目复制到另一台开发人员计算机.允许他编辑源代码,以便能够创建测试,但不允许他访问所有其他库/代码.我想我可以简单地将所有其他dll复制到一个随机文件夹中,并能够从独立的XUnit项目中引用它们.但是,情况并非如此,因为在尝试引用时,我收到一条错误消息,指出.NET Core项目无法引用标准dll.
有人能告诉我如何做到这一点吗?
我正在尝试从具有 data-id 属性的锚标记访问最近的 div。
.parent().parent().parent() 有效,但我真的很想避免这样做。
<div class="panel panel-default" data-id="@customer.Id">
<div class="panel-heading clearfix">
@customer.Name
<div class="pull-right">
<a class="btn btn-sm btn-default js-deleteCustomer" href="#" title="Delete">
<i class="fa fa-trash" aria-hidden="true"></i>
</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
var customerId = $(this).closest("div:has(*[data-id])").attr('data-id');
Run Code Online (Sandbox Code Playgroud) 我正在尝试在以下内容中使用可选的链接运算符:
productPrice1: product.prices["1"]?.amount.amount_1,
Run Code Online (Sandbox Code Playgroud)
我的问号确保如果键 ["1"] 的子对象不存在,它不会失败。但是,如果价格对象(父对象)也不存在,我也想这样做。
价格是一个带有子对象的对象,这些对象具有诸如“1”、“2”、“3”之类的键。我想首先检查价格是否为空,如果不是,则检查 ["1"] 是否存在。
我最初的尝试是尝试这个,但它不起作用:
productPrice1: product.prices?["1"]?.amount.amount_1,
Run Code Online (Sandbox Code Playgroud)
我试图避免执行以下操作,并想知道这是否是我唯一的选择:
productPrice1: product.prices != null ? product.prices?["1"]?.amount.amount_1 : null,
Run Code Online (Sandbox Code Playgroud) 我的页面的ViewModel中有一个DateTime属性.我想知道是否有内置的检查用户输入有效日期的方法.
以下是我当前代码的样子,截至目前,它不会自动确保用户输入有效日期(只需要验证):
ViewModel属性:
[Required]
[DataType(DataType.Date)]
public DateTime MyDate{ get; set; }
Run Code Online (Sandbox Code Playgroud)
Razor MVC6观点:
<label asp-for="MyDate" class="control-label"></label>
<input asp-for="MyDate" class="form-control" />
<span asp-validation-for="MyDate" class="text-danger" />
Run Code Online (Sandbox Code Playgroud) c# asp.net asp.net-mvc data-annotations unobtrusive-validation
我试图弄清楚如何在Global.asax级别配置新的AutoMapper。
我以前使用旧的AutoMapper执行以下操作:
在App_Start文件夹中创建一个名为MappingProfile.cs的类,并在构造函数中添加如下所示的映射:
public MappingProfile()
{
Mapper.CreateMap<Product, ProductDto>();
Mapper.CreateMap<ApplicationUser, UserDto>();
}
Run Code Online (Sandbox Code Playgroud)
然后在Global.asax中调用:
Mapper.Initialize(cfg => cfg.AddProfile<MappingProfile>());
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何使用新版本的AutoMapper实现上述目标吗?我一直在阅读文档,但似乎无法理解。
我相信我在MappingProfile.cs文件中做了这样的事情:
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Product, ProductDto>();
cfg.CreateMap<ApplicationUser, UserDto>();
});
Run Code Online (Sandbox Code Playgroud)
但是我该如何使用config变量?
我想开始使用vscode来开发.net核心应用程序,但我对如何将类库创建为单独的项目并引用它们感到困惑.
例如:在Visual Studio解决方案中,我将向该解决方案添加一个Web API项目,然后添加几个类库.根据需要右键单击Web API项目和"添加引用".
即使没有解决方案概念,可以使用VS Code和dotnet CLI完成同样的事情吗?
c# ×7
asp.net ×4
asp.net-core ×4
asp.net-mvc ×2
javascript ×2
xunit ×2
angular ×1
automapper ×1
dotnet-cli ×1
html ×1
jquery ×1
nuget ×1
telerik ×1
typescript ×1
unit-testing ×1
xunit2 ×1