我发现大多数人都在谈论Hudson的简单和自由的持续集成.现在我个人不喜欢它的界面,我发现它非常凌乱,我发现几乎没有人谈论CDash - 我喜欢CMake和CTest似乎也很好.
您能否为自己喜欢的持续集成服务器/构建器/测试人员/仪表板提供其强弱决策点的简短描述.
以下是我听说过或使用过的免费(在中小型项目的广义上)的列表:
环境: C++,C#,Python,PHP ......可以是各种各样的.
PS:最好每个工具给出一个答案或对其进行评论已经有一个.
使用Python unittest我发现自己缺少编写单元测试断言的简洁描述方式,如在NUnit或Jasmine中完成的:
# 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库兼容?
我有一个新的Docker映像,理想情况下,我希望对其进行平滑升级,或者忘记以前的部署版本,或者只保留以前的版本,而不保留所有先前部署的版本。
Kubernetes Pods将在重新启动后重新检索最新图像(如果标记为:latest或)imagePullPolicy: Always。
但是,除非image标签更改,否则操作a kubectl apply或kubectl replace将不会重新启动Pod,因此不会触发提取最新的image。标记它意味着一个复杂的脚本,该脚本总是删除旧的标记图像(无用的人在这里有窍门)。
kubectl rolling-update ... --image ...如果每个吊舱只有一个容器,则可以这样做。
可行的方法,最终是干净的方法,总是最新的方法是删除名称空间并重新创建所有pods / rc / services ...
即使每个Pod有多个容器,我如何要求Kubernetes很好地使用我的新映像?
kubernetes google-kubernetes-engine google-container-registry
摘自Microsoft文档:
默认情况下,线程池每个可用处理器有250个工作线程.您可以使用ThreadPool.SetMaxThreads方法更改此设置.
众所周知,它也有一些开销:
线程有一定程度的开销.因此,如果计算机具有多个处理器并且您将处理拆分为两个线程,则不会看到100%的性能提升.
出于一些经验和更多的猜测,我每个CPU 都有1到4个线程,而不是250个!有人知道为什么250?是否有一些值可以提供最佳的整体性能,或者它是为了几乎完成您为该线程池提供的每项任务而无需等待其他任务完成?
是否有相当于PHP的strtotime().NET Framework功能.我在谈论它处理字符串的能力如下:
显然DateTime.Parse(),Convert.ToDateTime()不要这样做.
我发现的最接近的是一个只能处理其中一些的小类:http://refactormycode.com/codes/488-parse-relative-date
编辑:我对C#编译时功能不感兴趣.问题是在运行时将人类相对日期/时间字符串转换为DateTime(即"now" - > DateTime.Now等).
如何使用Python通过REST API(版本2)将JIRA问题标记为已解决或已关闭?
我在http://docs.atlassian.com/jira/REST/latest/#id199544找到了文档,但我遇到了各种错误,包括:
在Python中,文件对象可能指向真实文件,stdin,stdout,stderr,甚至是其他东西.因此它可以是文件,也可以是file.flush中所述的真实文件.
如何知道文件是否是真实文件?我找到了一些猜测的方法,但似乎没有一个真正可靠:
file not in [sys.stdin, sys.stdout, sys.stderr] - 似乎最安全但仅适用于那些标准类型,而不是非常通用的解决方案.os.path.isfile(file.name) - 看起来非常安全,但如果在某些创建模式下打开新文件我可能无效.file.fileno() == 0 - 这假设方法未实现,默认实现返回0,正常实现永远不会返回0.file.name.startswith('<')- 这确实假设文件系统不允许<在文件名中.为什么我需要知道这个,是因为我想早点关闭它并使用with file as f:可能关闭stdin/stdout听起来像个坏主意.
目标:我希望用户能够直接连接到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格式?
我想使用单个谷歌计算引擎 磁盘并将其安装到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)
从技术上讲,我可以在一个实例上手动安装两个分区.
我想知道它是否是一个错误,如果有另一个解决方案(在有多个磁盘之外)?
我需要获取列名,主键,外键和其他架构信息.这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#单元测试,如何针对各种输入或输入矩阵进行测试运行?
我经常有单元测试的情况做出输入矩阵,但通常可以通过检查输入列表来合理地解决.
最简单的情况是测试添加:
将对每个输入进行相同的测试(在该示例中,有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]所有输入都会调用一次.
你的解决方案是什么?
是否有一些我不知道的功能可以帮助那些案例?
在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/)?
python ×3
.net ×2
c# ×2
kubernetes ×2
php ×2
templates ×2
base-url ×1
builder ×1
comparison ×1
dashboard ×1
datatable ×1
datetime ×1
file-io ×1
foreach ×1
foreign-keys ×1
frameworks ×1
hudson ×1
jira ×1
kohana ×1
odbc ×1
parsing ×1
post ×1
processor ×1
rest ×1
schema ×1
smarty ×1
sql-server ×1
string ×1
strtotime ×1
threadpool ×1
unit-testing ×1