问题列表 - 第12487页

Bash和测试驱动开发

在bash中编写多个简单的脚本时,我常常想知道如何使代码可测试.

通常很难为bash代码编写测试,因为它在获取值并返回值的函数上很少,而在检查和设置环境中的某些方面的函数中很高,修改文件系统,调用程序等 - 依赖于环境或具有副作用的功能.因此,设置和测试代码变得比它们测试的代码复杂得多.


例如,考虑一个简单的测试函数:

function add_to_file() {
  local f=$1
  cat >> $f
  sort -u $f -o $f
}
Run Code Online (Sandbox Code Playgroud)

此功能的测试代码可能包括:

add_to_file.before:

foo
bar
baz
Run Code Online (Sandbox Code Playgroud)

add_to_file.after:

bar
baz
foo
qux
Run Code Online (Sandbox Code Playgroud)

和测试代码:

function test_add_to_file() {
   cp add_to_file.{before,tmp}
   add_to_file add_to_file.tmp
   cmp add_to_file.{tmp,after} && echo pass || echo fail
   rm add_to_file.tmp
}
Run Code Online (Sandbox Code Playgroud)

这里有5行代码由6行测试代码和7行数据测试.


现在考虑一个稍微复杂的案例:

function distribute() {
   local file=$1 ; shift
   local hosts=( "$@" )
   for host in "${hosts[@]}" ; do
     rsync -ae ssh $file $host:$file
   done
}
Run Code Online (Sandbox Code Playgroud)

我甚至不能说如何开始为此测试...


那么,有一个很好的方法在bash脚本中做TDD,还是我应该放弃并把我的努力放在别的地方?

bash tdd

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

传递非现有目录作为IIS或Apache中的参数

首先看看这个网址:

/sf/ask/tagged/xoxoxo/

此目录不存在,但不知何故stackoverflow可以将最后一个目录作为参数传递给他的基本脚本.

这可以配置IIS或Apache吗?怎么样?

apache iis mod-rewrite isapi-rewrite url-rewriting

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

Prim的算法时间复杂度是如何使用Priority Q的ElogV?

我使用的伪代码:

for all V vertices: visited[n]=0

pick any vertex r from graph and set visited[r]=1

For all edges e incident to r
PQ.insert()

while(PQ is not empty)//line 1
  f=PQ.min()//f(r,s) is such that visited[s]=0
  for all edges e(s,t) incident to s//line 2
     if(visited[t]==0)
        PQ.insert(e);//line 3
     else
        PQ.delete(e);//line 4
  visited[s]=1;
end while;
Run Code Online (Sandbox Code Playgroud)

根据我的理解:

  • 第 1 行:执行V-1次数。
  • 第 2 行:所有顶点的度数总和时间……就是2E时间

对于每一行 2:第 3 行和第 4 行需要log E时间,因为我们正在PQ逐条添加/删除所有边。

所以总time= V-1+2E.logE=E.log E

但是书上说是的 …

algorithm complexity-theory big-o prims-algorithm

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

用于查找不在超链接内的 URL 的正则表达式

有许多正则表达式可以匹配 URL。但是,我正在尝试匹配未出现在<a>超链接标记(HREF、内部值等)中的任何位置的 URL 。所以这些中的任何 URL 都不应该匹配:

<a href="http://www.example.com/">某事</a>
<a href="http://www.example.com/">http://www.example2.com</a>
<a href="http://www.example.com/"><b>东西</b>http://www.example.com/<span>test</span></a>

<a></a>应该匹配任何外部的 URL 。

我尝试过的一种方法是使用否定前瞻来查看<a>URL 之后的第一个标签是开头<a>还是结尾</a>。如果是关闭,</a>则 URL 必须位于超链接内。我认为这个想法没问题,但是负向前瞻正则表达式不起作用(或者更准确地说,正则表达式没有正确编写)。任何提示都非常感谢。

html regex url

6
推荐指数
2
解决办法
4756
查看次数

以编程方式重新启动IIS7(C#)

是否可以使用C#重启IIS7?如果是这样,怎么样?

.net c# iis-7

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

如何使用WinRAR命令行提取ZIP文件?

在尝试提取zip文件时,我收到错误:

c:\ path \name.zip不是RAR存档
没有要提取的文件

我的代码是:

p.StartInfo.FileName = @"C:\Program Files\WinRAR\rar.exe";
p.StartInfo.Arguments = string.Format("x -o- {2} \"{0}\" * \"{1}\"\\ ",
  szFN,
  outFolder,
  passWord == null ? "" : string.Format("-p\"{0}\"", passWord));
Run Code Online (Sandbox Code Playgroud)

GUI版本可以提取zip和7z文件.

为什么这不起作用?如何提取zip和7z文件?

(注意:我有7zip的不同源代码.我想我可以合并这两个,只有当文件有rar扩展时才使用上面的.但我不喜欢那个解决方案.)

command-line rar winrar unrar

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

C#:列出汇编中的所有类

我想输出(以编程方式 - C#)我的程序集中所有类的列表.

任何提示或示例代码如何做到这一点?反射?

.net c# class-structure

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

你怎么得到一个javascript函数只在任何一点运行一个实例?

我有一些代码,我想在页面上运行.我的问题是我不希望它在任何一点上运行多次.它可以运行多次,但只是在其自身的另一个实例正在运行时.我正在使用jQuery并加载ajax内容.

我只需要一些东西来阻止用户点击匆忙的时间并建立起来并ping我的服务器堆.

这可能吗?

谢谢.

javascript jquery

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

有没有办法以编程方式将文件从TrueCrypt磁盘读入内存?

我需要将已安装的TrueCrypt磁盘中的文件加载到内存中.有没有办法以编程方式执行此操作?TrueCrypt是否提供API?

我认为最好的尝试方法是挂载卷(当然提示用户输入密码),打开文件,然后卸载卷.有没有办法自动完成这个?

我在Windows Vista上.我有C#,Python和Perl随时可用.

c# python perl truecrypt readfile

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

C#:以自定义百分比创建CPU使用率

我希望在某些CPU使用条件下测试几台机器上的系统响应能力等.不幸的是,我只能创建~100%的使用率(无限循环)或没有足够的CPU使用率(我正在使用C#).

有没有办法,粗略的近似,因为其他任务也在系统上运行,以20,30,40%(等等)步骤人为地创建CPU使用?

据我所知,系统之间存在差异,因为CPU会有所不同.它更多地是关于可自定义CPU密集型计算的算法/想法,这些算法/想法在当前CPU上创建了足够的使用而没有最大化它我可以调整它们然后以某种方式调整它们以创建所需的百分比.

.net c# performance

7
推荐指数
2
解决办法
3210
查看次数