标签: test-runner

使用测试创建完整的Haskell堆栈

我是Haskell的新手,我正在尝试构建一个受测试的程序.我决定使用HUnit和Cabal.

从我所看到的一个结构良好的项目看起来如下:

src/
  AppName/
  Appname.hs
testsuite/
  tests/
    AppName/
  TestRunner.hs
AppName.cabal
Setup.hs
Run Code Online (Sandbox Code Playgroud)

对我来说神秘的部分是TestRunner.hs和AppName.cabal.

在testuite/tests目录和子目录下运行所有​​测试的testrunner会是什么样子?它如何与Cabal集成?

另外,如何将hackage依赖项放在AppName.cabal中并从命令行构建它们?

我很难找到一个完整的示例,从头开始构建一个带有测试和依赖项的应用程序.

谢谢

haskell cabal hackage test-runner hunit

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

强制nunit控制台运行程序使用CLR 4.5

我有以下简单的测试用例:

var uri = new Uri("http://foo.com/bar%2Fbaz");
Assert.AreEqual("http://foo.com/bar%2Fbaz", uri.AbsoluteUri);
Run Code Online (Sandbox Code Playgroud)

这个测试在.NET 4上失败但是传递了.NET 4.5,我可以使用ReSharper测试运行器测试它,它提供了一个方便的CLR选择菜单.

但是,如果我使用nunit console runner运行此测试,如下所示:

nunit-console.exe /framework:4.5"C:\ Data\Projects\UriTest\bin\Debug\UriTest.dll"

我的测试失败了.我甚至修改了nunit-console.exe.config并添加了这个:

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
Run Code Online (Sandbox Code Playgroud)

添加之后,我开始从跑步者那里得到这个输出:

Runtime Environment -
   OS Version: Microsoft Windows NT 6.2.9200.0
  CLR Version: 4.0.30319.34209 ( Net 4.5 )

ProcessModel: Default    DomainUsage: Single
Execution Runtime: v4.5
Run Code Online (Sandbox Code Playgroud)

但我的测试仍然失败了.知道为什么会这样吗?

nunit unit-testing test-runner

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

Play框架的并行测试运行器

涉及Play FrameworkTestServer类的功能测试似乎只在Play控制台内部工作.

不幸的是,由play test命令执行的Play控制台中的股票测试运行器按顺序执行测试,这需要花费很多时间.我认为如果并行执行它们会运行得更快.

有没有办法并行运行测试?

更新:SBT支持在并行和不同的JVM中运行测试,这使得TestServer在理论上如果它们在不同的端口上侦听时可以使多个实例并行.Play似乎忽略了这些设置.请参阅我报告的问题:https://github.com/playframework/Play20/issues/849.对于那些展示让Play Framework尊重这些SBT测试设置以使用Build.scala文件在不同JVM中并行运行基于junit的测试的方式的人来说,这是一个赏金.

java junit test-runner sbt playframework-2.1

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

在Visual Studio中运行所有打开的测试

是否有一种简单的方法可以在Visual Studio中的开放测试类中运行所有测试.我发现这是我最常需要做的事情.

大多数情况下,我使用Resharpers或TestDriven.NET测试人员,我无法在testrunner中找到任何简单的方法.在Resharper中,有一个"添加所有打开的测试到会话"功能会很好,但经过大量的谷歌搜索,我找不到一个,或任何其他简单的方法来做到这一点.

是否有工具,插件或什么不做?

c# resharper testdriven.net test-runner visual-studio

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

Googletest Eclipse C++:如何同时拥有测试和生产可执行文件?

我有一个关于Eclipse 中的Googletest的基本问题。

我正在使用test-runner插件来运行 Googletests。但是我需要指定一个运行我的单元测试的二进制文件(当然这是有道理的。)

问题是在我的项目中,我现在有两个主要功能,一个运行实际程序,一个

int main(int argc, char** argv) {
  ::testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}
Run Code Online (Sandbox Code Playgroud)

运行谷歌测试。

每次我想运行一个时,我都会将另一个注释掉,这当然是愚蠢的。

但是你用什么方法来处理这种情况呢?

c++ eclipse googletest test-runner

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

Resharper - NUnit - VS2010:内存不足异常

当我在resharper中使用测试运行器运行我的nunit测试时,我得到一个OutOfMemory异常.

在我看来,当测试套件运行时,它会在套件的持续时间内消耗内存,并且只有在整个测试集完成后才会释放内存.因此,即使我从多个程序集中运行一组测试,它们的集体内存占用也会被消耗掉,并且只会在最后发布.

有没有办法让测试运行器更频繁地释放内存?我们谈论的是755项似乎并不过分的测试.我认为这个问题与使用Rhino.mocks以及在此测试集合中创建的所有模拟存储库分配有关.

注意:使用Resharper 5.1,Rhino.Mocks,VS2010和NUnit 2.4.8

谢谢John Schank

resharper visual-studio-2010 test-runner

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

Visual Studio 2012 RC - 构建后运行单元测试 - 指定要运行的测试类别

在VS2012(RC,即将成为RTM)中,是否可以选择每次构建后运行的(nunit)单元测试?我喜欢这个功能,但我有两个测试类别/程序集 - 一个用于预期快速运行的实际单元测试,另一个用于数据库方案和测试生成数据.我不希望在每次构建之后运行后者,尽管我想在常规单元测试中使用此功能.有没有办法指定类别/程序集/等.应该在成功构建后执行?谢谢JP

nunit unit-testing test-runner visual-studio-2012

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

如何在Eclipse和Ant中使用不同的Junit TestRunner?

我有几个JBehave测试,我想从Eclipse和Ant运行.在Eclipse中,我希望看到一个包含在图形输出中执行的所有不同故事,场景和步骤的树,因此我在执行此操作的测试中添加了一个自定义运行器:

@RunWith(de.codecentric.jbehave.junit.monitoring.JUnitReportingRunner.class)
public class MyStoryTest extends org.jbehave.core.junit.JUnitStories
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但是相反,当使用Ant和Continuous Integration服务器运行测试时,我希望只将每个故事都看作输出中的单个项目.这通常在没有任何注释的情况下实现:

public class MyStoryTest extends JUnitStories
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

那么我如何告诉Ant(junit Ant任务)使用与Eclipse不同的跑步者?让事情变得更复杂:目前我在Eclipse(而不是Ant)中使用测试套件来运行测试:

@RunWith(org.junit.extensions.cpsuite.ClasspathSuite.class)
@org.junit.extensions.cpsuite.ClassnameFilters("foo.mypackage.tests.*")
public class MyStoriesTestSuite
{
    // Nothing more to say ;)
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

干杯,蒂尔曼

java ant junit test-runner jbehave

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

如何让 Karma 使用特定语言启动 Chrome?

我使用Karma作为测试运行器来执行我的 Jasmine 单元测试。是否有可能告诉 Karma 它应该始终使用英语语言环境启动 Chrome 实例?

我目前的业力配置是这样的:

// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: [process.env.TRAVIS ? 'Chrome_travis_ci' : 'Chrome'],
customLaunchers: {
  Chrome_travis_ci: {
    base: 'Chrome',
    flags: ['--no-sandbox']
  }
}
Run Code Online (Sandbox Code Playgroud)

locale google-chrome test-runner karma-runner karma-jasmine

5
推荐指数
0
解决办法
315
查看次数

如何在 Unity Test Runner 中测试 Unity 协程

我目前正在使用 Unity 2019 和 C# 开发一款游戏,并为此使用了大量事件和协程。协程是必要的,因为许多计算都是在其中完成的,我不希望游戏在那段时间冻结。现在我开始使用测试运行器(播放模式)编写单元测试,并且协程只是不执行。由于我确实需要确保它们按预期工作,因此不可能仅在“更高级别”进行测试。

我已经尝试过正常的 StartCoroutine() 方法,该方法在测试文件中不起作用(“找不到方法名称”)。此外,我将我的一个协程重构为正常的 void 方法,一切运行良好并且通过了测试。我使用 Visual Studio 调试器来查看它是否跳转到协程执行,但没有。所以问题显然是协程没有执行。我考虑过将计算逻辑移至另一个 void 函数并测试该函数(并省略协程),但我必须确保协程中完成的迭代也能正常工作(它们通常比示例中更复杂)。

这是一个显示一般结构的最小示例(通常需要完成更多计算)。

public class MeasuredValues
{
    List<Vector3> slidingWindow; // this is already filled when Normalize() is executed

    public IEnumerator Normalize()
    {
        //find coordinate system origin
        Vector3 originPosition = GetOrigin(); // returns a Vector3
        //normalization
        for (int i = 0; i < slidingWindow.Count; i++)
        {
            yield return null;
            //reset point to be at (0,y,0)
            slidingWindow[i] -= originPosition;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在测试文件中我想:

[Test]
public void …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing coroutine unity-game-engine test-runner

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