问题列表 - 第1546页

如何快速保持自动化测试?

自动化测试必须能够快速反映实时项目状态.这个想法是:

  1. 在执行任何提交到存储库自动构建之后(尽可能快地完成).
  2. 如果构建成功,则启动自动化测试.一定要快.

这是我知道的最好的方法,以确定您的更改是否会破坏任何内容.

起初,似乎快速进行构建很难,但我们设法将它保持在100秒左右.105(!)项目的解决方案(MSVS 2008 C#).

测试似乎并不那么简单(我们使用NUnit FW).单元测试不是一个大问题.正是集成测试杀死了我们.而不是它们更慢的事实(关于如何使它们更快的任何想法都非常受欢迎)但事实上必须设置更慢(大约1000秒)的环境!

我们的集成测试使用需要重新部署的Web/win服务(目前为止19个),以反映最新的变化.这包括重新启动服务和大量HDD R/W活动.

任何人都可以分享环境和工作流程应该/可以组织/优化的经验,以加强自动化测试阶段.什么是"低级"瓶颈和解决方法.

PS书和广泛的文章是受欢迎的,但现实世界的工作解决方案更受欢迎.

testing performance continuous-integration automated-tests

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

我应该将utilities.pl更改为utilities.pm模块吗?

在我们的产品中,我们有一个很大的实用程序文件,我们需要(带do)在很多文件的开头.有没有理由把它变成一个模块?例如,而不是这样做:

do '../dbi_utilities.pl';
our ($db,$user,$pw,$attr);
my $Data = DBI->connect($db,$user,$pw,$attr) or die "Could not connect to database: $DBI::errstr";
Run Code Online (Sandbox Code Playgroud)

我不能这样做吗?:

use AppUtil;
my $Data = AppUtil->connect();
Run Code Online (Sandbox Code Playgroud)

perl perl-module

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

如何使用Schema基于属性值验证元素?

我试图验证的XML如下:

<root>
    <element attribute="foo">
        <bar/>
    </element>
    <element attribute="hello">
        <world/>
    </element>
</root>
Run Code Online (Sandbox Code Playgroud)

如何使用Schema验证?

注意:

attribute ="foo"时,element只能包含bar.

attribute ="hello"时,element只能包含world

xml validation schema xsd

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

我应该练习"模仿者"还是"经典"TDD?

我读过(并重新阅读)Martin Fowler的Mocks Are not Stubs.在其中,他定义了两种不同的TDD方法:"古典"和"模仿者".他试图回答" 我应该成为一个古典主义者还是一个嘲笑者? "这个问题,但他承认他从来没有尝试过模仿者TDD,而不仅仅是"玩具".所以我想我会问这个问题.好的答案可能会重复福勒的论点(但希望更清楚)或添加他没有想到的论点,或者其他人提出的论点,因为福勒上次在2007年1月更新了这篇论文.

tdd mocking

38
推荐指数
4
解决办法
6083
查看次数

我该怎么学C?

我对学习C感兴趣.我读过K&R,甚至在R和Python中做过一些简单的C扩展工作.使用C做更实质的事情有什么值得的项目想法?任何好的在线资源,类似于Dive Into Python?特别是,资源专注于已经知道正在尝试学习C的新语言的程序员(提到诸如"在C中询问数组的长度是无意义的,你懒惰的Pythonista").

我的背景:

数学/统计学,Python,R中的日常编程,主要围绕自然语言处理,算法等.

c kernighan-and-ritchie

5
推荐指数
2
解决办法
1979
查看次数

是vs typeof

这些代码中的哪一段更快?

if (obj is ClassA) {}

if (obj.GetType() == typeof(ClassA)) {}
Run Code Online (Sandbox Code Playgroud)

编辑:我知道他们不会做同样的事情.

c# rtti

145
推荐指数
4
解决办法
11万
查看次数

使用C#播放流中的音频

C#中是否有一种方法可以直接从System.IO.Stream播放音频(例如MP3),例如从WebRequest返回而不将数据临时保存到磁盘?


NAudio的解决方案

NAudio 1.3 的帮助下,可以:

  1. 将URL中的MP3文件加载到MemoryStream中
  2. 完全加载后,将MP3数据转换为波形数据
  3. 使用NAudio的WaveOut类播放波形数据

如果能够播放半载MP3文件本来不错,但由于NAudio库设计,这似乎是不可能的.

这是完成工作的功能:

    public static void PlayMp3FromUrl(string url)
    {
        using (Stream ms = new MemoryStream())
        {
            using (Stream stream = WebRequest.Create(url)
                .GetResponse().GetResponseStream())
            {
                byte[] buffer = new byte[32768];
                int read;
                while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    ms.Write(buffer, 0, read);
                }
            }

            ms.Position = 0;
            using (WaveStream blockAlignedStream =
                new BlockAlignReductionStream(
                    WaveFormatConversionStream.CreatePcmStream(
                        new Mp3FileReader(ms))))
            {
                using (WaveOut waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
                { …
Run Code Online (Sandbox Code Playgroud)

.net audio mp3 stream naudio

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

将$ _POST中给出的字符串与php进行比较

我有一个发送大小东西的表单,我需要查看字符串是什么,以便我可以相应地设置价格.当我尝试这样做时,它说它们不相等,我没有价格.这是我正在使用的代码:

if ($_POST['sizes'] == "Small ($30)"){$total = "30";}
if ($_POST['sizes'] == "Medium ($40)"){$total = "40";}
if ($_POST['sizes'] == "Large ($50)"){$total = "50";}
else {$total = $_POST['price'];}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?我可以回显$ _POST ['sizes'],它只给我一个这样的东西.

php post compare

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

在我输入finally块之前是否可以检测是否发生了异常?

在Java中,是否有一种优雅的方法来检测在运行finally块之前是否发生了异常?处理"close()"语句时,通常需要在finally块中进行异常处理.理想情况下,我们希望保留两个异常并将它们传播(因为它们都可能包含有用的信息).我能想到的唯一方法是在try-catch-finally范围之外设置一个变量来保存对抛出异常的引用.然后使用finally块中发生的任何内容传播"已保存"的异常.

有更优雅的方式吗?也许API调用会揭示这个?

这是我正在谈论的一些粗略代码:

Throwable t = null; 
try {   
   stream.write(buffer); 
} catch(IOException e) {
    t = e;   //Need to save this exception for finally
    throw e;
} finally {   
    try {
       stream.close();   //may throw exception
   } catch(IOException e) {
      //Is there something better than saving the exception from the exception block?
      if(t!=null) {
         //propagate the read exception as the "cause"--not great, but you see what I mean.
         throw new IOException("Could not close in finally block: " + e.getMessage(),t);
      } else …
Run Code Online (Sandbox Code Playgroud)

java exception-handling

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

重复加载和保存压缩音频文件会降低质量吗?

就像jpeg图像的例子一样?什么是mp3或ogg vorbis音频文件?

compression audio

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