小编Wer*_*ght的帖子

比较Hudson,CDash,CruisonControl,TeamCity for Continuous Integration/Builder

我发现大多数人都在谈论Hudson的简单和自由的持续集成.现在我个人不喜欢它的界面,我发现它非常凌乱,我发现几乎没有人谈论CDash - 我喜欢CMakeCTest似乎也很好.

您能否为自己喜欢的持续集成服务器/构建器/测试人员/仪表板提供其强弱决策点的简短描述.

以下是我听说过或使用过的免费(在中小型项目的广义上)的列表:

环境: C++,C#,Python,PHP ......可以是各种各样的.

PS:最好每个工具给出一个答案或对其进行评论已经有一个.

comparison continuous-integration dashboard hudson builder

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

相当于Python的NUnit或Jasmine断言?

使用Python unittest我发现自己缺少编写单元测试断言的简洁描述方式,如在NUnitJasmine中完成的:

# NUnit
Expect(collection, Has.None.EqualTo(DateTime.Now).Within(3).Hours);

# Jasmine
expect(pi).not.toBeCloseTo(e, 2);
Run Code Online (Sandbox Code Playgroud)

是否存在提供此类断言方法的现有Python库,最好与Python的unittest库兼容?

python python-unittest

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

如何很好地要求Kubernetes检索较新的图像?

我有一个新的Docker映像,理想情况下,我希望对其进行平滑升级,或者忘记以前的部署版本,或者只保留以前的版本,而不保留所有先前部署的版本。

Kubernetes Pods将在重新启动后重新检索最新图像(如果标记为:latest或)imagePullPolicy: Always

但是,除非image标签更改,否则操作a kubectl applykubectl replace将不会重新启动Pod,因此不会触发提取最新的image。标记它意味着一个复杂的脚本,该脚本总是删除旧的标记图像(无用的人在这里有窍门)。

kubectl rolling-update ... --image ...如果每个吊舱只有一个容器,则可以这样做。

可行的方法,最终是干净的方法,总是最新的方法是删除名称空间并重新创建所有pods / rc / services ...

即使每个Pod有多个容器,我如何要求Kubernetes很好地使用我的新映像?

kubernetes google-kubernetes-engine google-container-registry

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

为什么几乎所有的PHP框架都使用"<?php echo ...?>"

  • PHP短标记<?= $var ?>已被弃用了一段时间.
  • 几乎所有PHP框架都 使用长格式 <?php echo $var ?>(例如,交响乐,Yii,Kohana)
  • Smarty是一个着名的PHP模板引擎,支持更短的形式{$var}
  • 模板引擎(如Smarty)对于网页设计师来说更容易
    • 编辑模板显示{$var}而不显示任何内容(因为<..>)
    • 更短的语法(更少打字,尤其<>是在某些键盘布局上使用相同键时)
    • 模板经过预编译和缓存,几乎可以提供相同的性能

所有这些点让我想知道,为什么所有框架似乎都使用超长的PHP语法?有没有使用像Smarty这样的模板引擎的强项(除了小开销)?

php templates frameworks smarty php-shorttags

5
推荐指数
4
解决办法
1247
查看次数

为什么ThreadPool默认每个处理器有250个工作线程?

摘自Microsoft文档:

默认情况下,线程池每个可用处理器有250个工作线程.您可以使用ThreadPool.SetMaxThreads方法更改此设置.

众所周知,它也有一些开销:

线程有一定程度的开销.因此,如果计算机具有多个处理器并且您将处理拆分为两个线程,则不会看到100%的性能提升.

出于一些经验和更多的猜测,我每个CPU 都有1到4个线程,而不是250个!有人知道为什么250?是否有一些值可以提供最佳的整体性能,或者它是为了几乎完成您为该线程池提供的每项任务而无需等待其他任务完成?

.net multithreading processor threadpool

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

strtotime相当于.NET

是否有相当于PHP的strtotime().NET Framework功能.我在谈论它处理字符串的能力如下:

  • strtotime(" 现在 ")
  • strtotime("2000年9月10日")
  • strtotime(" +1天 ")
  • strtotime(" +1周 ")
  • strtotime(" +1周2天4小时2秒 ")
  • strtotime(" 下周四 ")
  • strtotime(" 上周一 ")

显然DateTime.Parse(),Convert.ToDateTime()不要这样做.

我发现的最接近的是一个只能处理其中一些的小类:http://refactormycode.com/codes/488-parse-relative-date

编辑:我对C#编译时功能感兴趣.问题是在运行时将人类相对日期/时间字符串转换DateTime(即"now" - > DateTime.Now等).

.net string datetime parsing strtotime

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

通过Python REST API执行JIRA转换

如何使用Python通过REST API(版本2)将JIRA问题标记为已解决已关闭

我在http://docs.atlassian.com/jira/REST/latest/#id199544找到了文档,但我遇到了各种错误,包括:

  • HTTP错误415:不支持的媒体类型
  • HTTP错误400

python rest post jira

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

Python File对象是真实文件吗?

在Python中,文件对象可能指向真实文件,stdin,stdout,stderr,甚至是其他东西.因此它可以是文件,也可以是file.flush中所述的真实文件.

如何知道文件是否是真实文件?我找到了一些猜测的方法,但似乎没有一个真正可靠:

  1. file not in [sys.stdin, sys.stdout, sys.stderr] - 似乎最安全但仅适用于那些标准类型,而不是非常通用的解决方案.
  2. os.path.isfile(file.name) - 看起来非常安全,但如果在某些创建模式下打开新文件我可能无效.
  3. file.fileno() == 0 - 这假设方法未实现,默认实现返回0,正常实现永远不会返回0.
  4. file.name.startswith('<')- 这确实假设文件系统不允许<在文件名中.

为什么我需要知道这个,是因为我想早点关闭它并使用with file as f:可能关闭stdin/stdout听起来像个坏主意.

python file-io

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

SAP BusinessObjects是否需要Universe用于关系数据库?

目标:我希望用户能够直接连接到RDBMS(例如,MS SQL Server)并使用可能的交叉引用进行一些查询.

工具: SAP BusinessObjects XI Enterprise

描述:

主要原因是宇宙的创造非常有技术性.想象一下,SQL DB结构经常变化,甚至可能每天都在变化.Hense同步问题.

BO是否能够使用非技术可用的BO查询GUI进行交叉引用确实生成如下请求:

SELECT
    Classroom.Location
FROM
    Student,
    Classroom
WHERE
    Student.Name = 'Foo' AND
    Student.ClassroomName = Classroom.Name
Run Code Online (Sandbox Code Playgroud)

...只有ODBC连接而且没有Universe(或自动生成的Universe)?

如果是,是否需要定义外键

如果不是,是否有一种简单的方法可以直接从DB结构创建和更新(同步)BO Universe?可能正在使用他们的新XML格式?

odbc business-objects foreign-keys relational-database

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

我可以将单个GCE磁盘的多个分区安装到Pod吗?

我想使用单个谷歌计算引擎 磁盘并将其安装到Kubernetes Google容器引擎的多个位置.

我想知道使用persistentVolumeClaim是否可行,但我所期望的是能够安装同一磁盘的两个分区:

  ...
  volumes:
    - name: database
      gcePersistentDisk:
        pdName: dist-1
        fsType: ext4
        partition: 1
        readOnly: true
    - name: media
      gcePersistentDisk:
        pdName: disk-1
        fsType: ext4
        partition: 2
        readOnly: true
Run Code Online (Sandbox Code Playgroud)

单独安装其中任何一个都有效,但尝试同时安装它们会产生错误:

FailedMount     Unable to mount volumes for pod "frontend-ni7uf_foo": Could not attach GCE PD "disk-1". Timeout waiting for mount paths to be created.
Run Code Online (Sandbox Code Playgroud)

从技术上讲,我可以在一个实例上手动安装两个分区.

我想知道它是否是一个错误,如果有另一个解决方案(在有多个磁盘之外)?

kubernetes google-kubernetes-engine

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

检索SQL Server中的表的DataTable信息

我需要获取列名,主键,外键和其他架构信息.这DataTable堂课似乎包含了所有这些.

下面是我到目前为止的当前代码.有了它,我可以检索除外之外的所有信息.我期待它们被定义,DataTable.Constraints但它们不是.这是我目前的代码:

    private static DataTable LoadSchemaInfo(string tableName, SqlConnection connection)
    {
        string cmdText = "SELECT * FROM [" + tableName + "] WHERE 1 = 0";

        // Create a SqlDataAdapter to get the results as DataTable
        var sqlDataAdapter = new SqlDataAdapter(cmdText, connection);

        // Create a new DataTable
        var dataTable = new DataTable(tableName);

        // Fill the DataTable with the result of the SQL statement
        sqlDataAdapter.FillSchema(dataTable, SchemaType.Source);

        return dataTable;
    }
Run Code Online (Sandbox Code Playgroud)

知道如何检索所有信息或如何获取FK(最好不使用纯SQL语法,因为我会缺少一些编译时检查)?

c# sql-server datatable schema foreign-key-relationship

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

单元测试一些输入的各种foreach

特别是对于C#单元测试,如何针对各种输入或输入矩阵进行测试运行?

我经常有单元测试的情况做出输入矩阵,但通常可以通过检查输入列表来合理地解决.

最简单的情况是测试添加:

  • 0 + 0 = 0
  • 1 + 0 = 1
  • 0 + -1 = -1
  • 1 + -1 = 0

将对每个输入进行相同的测试(在该示例中,有4个输入,每个输入与一些预期输出相关联.

简单的解决办法是:

object[] inputs = ...
foreach (var input in inputs)
   // Put Assert here
Run Code Online (Sandbox Code Playgroud)

问题在于,当您运行测试时,除非您在消息日志中手动包含足够的详细信息,否则它不会告知哪个输入失败.

另一个解决方案是展开循环(如下所示).堆栈跟踪然后给出哪个输入失败,这允许再次运行单个输入的测试.

TestAddition(0, 0, 0);
TestAddition(1, 0, 1);
TestAddition(0, -1, -1);
TestAddition(1, -1, 0);
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要的是,像FitNess这样的解决方案似乎有助于此类案例,但也增加了很多复杂性,似乎不适合标准C#开发.

所有这些解决方案都不适用于灯具,因为[TestInitialize]所有输入都会调用一次.

你的解决方案是什么?

是否有一些我不知道的功能可以帮助那些案例?

c# foreach unit-testing

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

如何在模板中获取Kohana base_url

Kohana 3中, bootstrap.php人们可以定义base_url:

Kohana::init(array(
    'base_url'   => '/foo/',
));
Run Code Online (Sandbox Code Playgroud)

这通常意味着也移动/js/,/css/和其他媒体到该基目录等/foo/js/,/foo/css/.我的问题不是讨论这样的好坏.

是否有一个内置的Kohana的方式来访问BASE_URL模板(就像在Django中你可以使用{{ MEDIA_URL }}css/)?

php templates kohana base-url

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