Java 我怎样才能使用;“对分运行”;只存在于大脑中的测试?

Java 我怎样才能使用;“对分运行”;只存在于大脑中的测试?,java,git,automation,git-bisect,Java,Git,Automation,Git Bisect,我发现了一个bug,我想知道它是从哪里引入的。我做的下一件事是创建一个单元测试,该测试当前失败,但在修复错误时应该通过。我在HEAD中创建了一个单元测试,可以从命令行运行它。但问题是,如果我签出HEAD以外的任何东西,那么单元测试就不存在了。即使它只存在于HEAD中,我怎样才能让BISSECT在每次签出时都运行这个单元测试呢 以下是我的一些想法: 我可以让对分脚本在不提交单元测试的情况下进行切分 如果我避免提交测试,那么测试将被带到每个签出(我认为) 有更好的方法吗 编辑:我正在使用Java。这

我发现了一个bug,我想知道它是从哪里引入的。我做的下一件事是创建一个单元测试,该测试当前失败,但在修复错误时应该通过。我在HEAD中创建了一个单元测试,可以从命令行运行它。但问题是,如果我签出HEAD以外的任何东西,那么单元测试就不存在了。即使它只存在于HEAD中,我怎样才能让BISSECT在每次签出时都运行这个单元测试呢

以下是我的一些想法:

  • 我可以让对分脚本在不提交单元测试的情况下进行切分
  • 如果我避免提交测试,那么测试将被带到每个签出(我认为)
  • 有更好的方法吗


    编辑:我正在使用Java。

    这里有一个建议:编写测试,使其不依赖于项目中的文件路径。继续,把它版本化,这样你就有了历史记录。然后将测试复制到项目文件夹之外,并将其传递给bisect run as

    git bisect run ../my-test-script
    

    这很难做到。我的测试是根据我的项目编译的。我想我必须做一个独立的对分项目,这取决于我的项目,以便做到这一点。也许我错了,但这似乎不值得努力。@Tiety您不应该在问题中提到您正在使用的技术堆栈(C#、Java等)。对于Ruby或Python这样的动态语言,这将是一件容易的事情,因为不涉及编译。@Tiety看不到我的答案。我编写了一个Bash脚本,可以自动为一个C#项目构建和运行单元测试。我只是将项目和测试文件路径传递给
    MSBuild
    和NUnit控制台运行程序。你不能用Java做类似的事情吗?例如,编写一个Bash/Ruby/Scala/任何脚本,将项目文件传递到
    javac
    进行编译,然后调用单元测试运行程序?@tieTYT根据JUnit团队的说法,您可以,例如
    java org.JUnit.runner.JUnitCore TestClass1[…其他测试类…]