小编psy*_*ych的帖子

MS单元测试示例

我正在努力让我的头脑进行单元测试.我一直在关注Nerd晚餐和专业asp.net MVC框架的例子,但是一旦我尝试自己很快就会卡住.作为测试,我尝试构建一个仅使用登录信息的验证类 - usename和password从存储库返回用户.我已经使用了这个例子,因为很容易想象一个人可能会执行哪些测试:Is_Password_Valid,Is_Username_Valid等.

我花了很长时间试图让我的头脑得到这个.任何人都可以举例说明他们如何将其作为单元测试吗?我想,一旦我破解了这个,我就会离开.

//Arrange
string email = "test@test.com";
string password = "test";

//Arrange
List<Customer> customer = new List<Customer>();

customer.Add(new Customer { CustomerId = 1, Email = email, Password = "best", FirstName = "test", LastName = "wods", Sex = true });
mockRepos = new Moq.Mock<ICustomerRepository>();
mockRepos.Setup(x => x.GetCustomerByPasswordUsername(email, password)).Returns(customer.First());
Authenticate auth = new Authenticate(mockRepos.Object);

//Act
var result = auth.Login(email, password);

//Assert
//this is where I start to become unstuck??????
Run Code Online (Sandbox Code Playgroud)

unit-testing moq

4
推荐指数
1
解决办法
6881
查看次数

是否可以通过自定义运行永久更新TeamCity构建参数的值?

是否可以通过自定义运行永久更新构建参数的值?

例如,考虑一个配置为具有内部版本号格式的版本:%Major%.%Minor%.%Patch%.%build.counter%

Major,Minor和Patch,在构建配置中定义为具有特定值.为了举个例子,假设这给出了3.1.2.36的内部版本号.

可以通过单击运行旁边的"..."更改构建号,然后更改其中一个参数的值.从1-> 2更改Minor并从2-> 0更改将使下一个版本的编号为3.2.0.37.

我并不过分担心37没有被重置为0,但问题是被触发的下一个构建(不是自定义运行的结果)将具有内部编号3.1.2.38,这是一个较低的数字.是否有可能在运行自定义构建并更改新值保持的数字时?

我正在寻找一种没有TeamCity管理员权限的用户可以根据他们所做的更改来增加版本号的方法.

我们正在运行v8.1.2(build 29993).

teamcity

4
推荐指数
1
解决办法
2709
查看次数

如何从nuspec中提取版本号到TeamCity?

如何从nuspec中提取版本号到TeamCity?

我们有一个带有相应nuspec节点的csproj文件:

1.3.2

在TeamCity中,我想构建这个项目,并创建一个版本为1.3.2.%build.counter%的NuGet包.例如,1.3.2.322.重要的是版本号来自源代码控制(NuSpec)中的文件,我不想将其复制为TeamCity中的变量.有没有办法从NuSpec文件中提取1.3.2并将其用作TeamCity变量?

teamcity nuget teamcity-8.0

4
推荐指数
2
解决办法
1991
查看次数

BitBucket 管道未使用缓存进行 npm 安装

我有一个 BitBucket 存储库,其中包含ui名为api.

我的 BitBucket 管道ng test为 Angular 应用程序运行,但node_modules文件夹没有被正确缓存。

这是我的 BitBucket 管道 yml 文件:

image: trion/ng-cli-karma

pipelines:
  default:
    - step:
        caches:
          - angular-node
        script:
          - cd ui
          - npm install
          - ng test --watch=false

definitions:
  caches:
    angular-node: /ui/node_modules
Run Code Online (Sandbox Code Playgroud)

当构建运行时,它显示:

Cache "angular-node": Downloading
Cache "angular-node": Extracting
Cache "angular-node": Extracted
Run Code Online (Sandbox Code Playgroud)

但是当它执行该npm install步骤时,它说:

在 41.944 秒内添加了 1623 个包

我正在尝试加快构建速度,但我无法弄清楚为什么 npm 需要安装依赖项,假设它们已经包含在已恢复的缓存中。

bitbucket bitbucket-pipelines

4
推荐指数
1
解决办法
5775
查看次数

如何在任何分辨率下找到屏幕中心

如何在任意分辨率下找到屏幕中心?

我希望我的程序出现在屏幕中间-10(在y轴上)。

(我的程序没有达到最大大小)

我在 WinForm 中使用 C#。

c# winforms

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

如何在本地运行的 Azure 函数中获取连接字符串环境变量?

我正在尝试设置一个 Azure 函数以在我的开发环境中本地运行。我希望连接到 MongoDb 数据库实例。

在我的local.settings.json文件中,我添加了:

"ConnectionStrings": {
    "DB_CONNECT_STRING": "mongodb://localhost:27017/MyDatabase"
}
Run Code Online (Sandbox Code Playgroud)

在我的功能中,我有:

module.exports = function (context, myTimer) {
    console.log(process.env.DB_CONNECT_STRING);
    context.done();
};
Run Code Online (Sandbox Code Playgroud)

process.env.DB_CONNECT_STRING 未定义。

我假设我需要为环境变量添加某种前缀,但我无法在任何地方找到它。如何指定连接字符串并在函数代码中引用它?

azure node.js azure-functions

3
推荐指数
1
解决办法
2067
查看次数

docker-compose在容器之间发出请求

我对docker-compose有点陌生,所以甚至不确定我在寻找什么。

我创建了两个映像,并使用docker-compose在本地环境中运行它们,这两个服务通过HTTP请求进行通信(两者都在localhost上运行,一个在端口3000上运行,一个在8000端口上运行)

当我将这两个服务移至docker(两个分离的容器和图像)时,我似乎无法使它们进行通信。

这是我的docker-compose文件:

version: '3'

services:
  service1:
    image: services/services1
    ports:
      - 3000:3000
    links:
      - "service2"
    depends_on:
      - service2

  service2:
    image: services/service2
    ports:
      - 8000:8000
Run Code Online (Sandbox Code Playgroud)

当我直接向每个服务发出http请求时,我会收到很好的响应,但是当我向service1发出请求时,而在services1中,我有另一个对服务2的请求,我根本无法得到响应

Error: connect ECONNREFUSED 127.0.0.1:8000
Run Code Online (Sandbox Code Playgroud)

两种服务都在0.0.0.0上运行

docker docker-compose

3
推荐指数
3
解决办法
4499
查看次数

如何防止为个人构建运行构建步骤

我们在TeamCity中有一个构建配置,有3个构建步骤.有没有办法阻止步骤2运行个人构建,以便正常的VCS触发器执行步骤1,2和3 - 但只有1和3运行个人构建?

对于个人构建,有一个变量BUILD_IS_PERSONAL设置为true,但如果不是,则不定义:http: //confluence.jetbrains.com/display/TCD8/Predefined+Build+Parameters

当我在构建配置脚本中使用变量时,你是如何使用变量的,它要求我手动定义值?

teamcity teamcity-8.0

2
推荐指数
1
解决办法
1010
查看次数

从C#编译Silverlight解决方案失败,并显示错误"未安装Silverlight 4 SDK"

我正在尝试以编程方式编译Silverlight项目.最初我只是包装了MsBuild.exe,但是有一个错误说:

C:\ Program Files(x86)\ MSBuild\Microsoft\Silverlight\v5.0\Microsoft.Silverlight.Common.targets(104,9):未安装Silverlight 4 SDK.

我正在使用SilverLight 5并安装了Silverlight 4和Silverlight 5的SDK.该解决方案在Visual Studio中编译良好.我按照这个问题的建议:

MSBuild命令行错误 - 未安装Silverlight 4 SDK

我从跑步开始:

C:\ WINDOWS\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe

至:

C:\ WINDOWS\Microsoft.NET \框架\ v4.0.30319\msbuild.exe

这解决了这个问题,但是由于需求的变化,我现在需要使用Microsoft.Build而不包装MsBuild exe.我有以下代码:

var globalProperty = new Dictionary<string, string> { { "Configuration", "Debug"}, { "Platform", "Any CPU" } };
var buildParameters = new BuildParameters(new ProjectCollection()) { Loggers = new List<ILogger> { this.logger } };
var buildRequest = new BuildRequestData(@"C:\example\solution.sln", globalProperty, "4.0", new[] {"Build" }, null);
BuildResult buildResult = BuildManager.DefaultBuildManager.Build(buildParameters, buildRequest);
Run Code Online (Sandbox Code Playgroud)

但是,我现在再次看到:

ValidateSilverlightFrameworkPaths:ERROR C:\ Program Files(x86)\ MSBuild\Microsoft\Silverlight\v5.0\Microsoft.Silverlight.Common.targets(104,9):未安装Silverlight …

c# msbuild silverlight .net-4.0 silverlight-5.0

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

Perforce 如何处理合并/集成之后、提交之前所做的更改?

我在 Perforce 中看到了我无法解释的行为。我选取了主干的一个分支,并定期提交更改,并偶尔从主干合并到我的分支,以确保重新集成时不会出现重大冲突。

这项工作完成后,我使用 Perforce 合并/集成选项将更改应用到主干。在发送这些更改进行代码审查后,我对主干进行了一些更改。此时,没有任何更改已提交到主干。

当我提交所有这些更改时,差异显示的文件完全符合我的预期。提交更改列表后,提交的更改与 diff 窗口中显示的更改不同。相反,自合并/集成以来我所做的更改并不存在。在服务器和主干上的本地副本之间进行比较,在代码审查后对相同文件进行了所有更改。因此,我必须进行第二次提交来修复损坏的构建。

我很困惑这是如何发生的,因为我认为 Perforce 只在客户端上保留每个文件的一个本地副本?

即使有一个标志显示文件已被篡改,它提交的文件在哪里?它确实在提交窗口中显示了主干路径,但我想它可能已经从分支获取了文件?

另一个问题是,在使用 Perforce 版本控制时,我应该如何最好地处理上述场景?

merge perforce

0
推荐指数
1
解决办法
1974
查看次数

字典中的类中的C#泛型

我有以下代码:

protected Dictionary<string, ObjectAttribute<T>> attributes;
Run Code Online (Sandbox Code Playgroud)

每次我向目录添加一个新项时都应该传递一个泛型类型,但我不想使用object/dynamic,因为它可能会导致一些转换问题.那么,有可能这样吗?

T没有在类构造函数中或其他任何地方定义,因为每次添加项目时我都需要它.

c# generics dictionary

0
推荐指数
1
解决办法
146
查看次数