如何将 JUnit 与 Sublime Text 3 结合使用

2024-03-10

这是一个由两部分组成的问题。我正在尝试将 JUnit 用于我正在 Sublime Text 3 中处理的项目。我的文件设置看起来有点像这样

Vulcan/
 Vulcan.sublime-project
 bin/
  ...
 src/
  core/
   org/
    vulcan/
     geom/
      Vector.java
      ... (other similar files in the same package)
  tests/
   org/
    vulcan/
     geom/
      VectorTest.java
      ... (relevant test files to match core/org/vulcan/geom/)

在顶端Vector.java and VectorTest.java,我有这条线package org.vulcan.geom。现在,在我的sublime-project文件,我已将源文件夹设置为Vulcan/src/core/,这样当我构建它时,Vector.java被编译为bin/org/vulcan/geom/Vector.class,但这意味着在构建整个项目后,tests/文件夹被忽略并且不是构建的bin/.

我尝试通过将源文件夹设置为来解决此问题Vulcan/src/,但这会导致一堆错误org/vulcan/geom/,说它找不到该包中的任何类名(我假设解决此问题的方法是将包从org.vulcan.geom to core.org.vulcan.geom但这将是一个乏味的过程)。

问题一:那么我怎样才能设置我的项目以便tests/与一起编译core/当我构建整个项目时?

问题2:有了这个文件结构,我将如何运行测试tests/ with JUnit (each .java文件输入tests/是一个可以运行的测试类JUnit)?我已经阅读了教程,我发现我可以从命令行运行它们(我不太确定该怎么做),或者我可以创建一个类,其main方法运行所有测试。如果我选择后一个选项,我会将“runner”类放在哪里?我会把它放进去吗tests/org/vulcan/geom/, or in tests/org/vulcan/, or in tests/org/?我如何从 Sublime Text 3 运行它?


关于问题1:

  • 安装包控制
  • 安装 Sublime Linter
  • 安装 Sublime Linter javac

编辑 Vulcan.sublime-project 并添加以下内容

"SublimeLinter": 
{
    "linters": 
    {
        "javac": 
        {
            "args": 
            [
                "-cp",
                "/usr/share/java/junit4.jar",
                "-sourcepath",
                "${project}/src/core:${project}/src/tests"
            ]
        }
    }
}

在 -cp 中,您可以添加编译所需的任何 .jar 库。在 -sourcepath 中,您可以添加项目的多个源(注意使用唯一的包名称)。两者都可以采用用“:”分隔的多个路径。

这两个参数实际上是 javac cli 参数,因此您可以查找 javac 手册页以获取更多功能。

如果您使用上面的设置,每次您在 sublime 中保存 .java 文件时,javac 都会对其进行编译并在同一目录中创建一个 .class 文件。 Sublime linter 会在侧边栏显示编译错误和警告。

关于问题2:

如果您想测试 vulcan 内的所有内容,TestRunner.java 应该位于tests/org/vulcan 中。如果您想测试 geom TestRunner.java 中的所有内容,则应位于tests/org/vulcan/geom 中。

TestRunner.java 示例 -http://www.vogella.com/tutorials/JUnit/article.html#juniteclipse_code http://www.vogella.com/tutorials/JUnit/article.html#juniteclipse_code

但是为了运行测试,您必须保存所有文件,以便编译并运行后

cd .../Vulcan/src/tests
java -cp .:/usr/share/java/junit4.jar org.vulcan.TestRunner

脱离主题——为什么要使用 sublime for java:

如果您较少使用自动完成、自动导入、复制/粘贴 - 您会学得更快,对细节的关注会更好,从长远来看,您会更快地编写正确的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 JUnit 与 Sublime Text 3 结合使用 的相关文章

  • 给定“java.sql.SQLIntegrityConstraintViolationException”是否可以确定错误的列

    鉴于我有一个类型为 java sql SQLIntegrityConstraintViolationException 的异常 是否可以以编程方式确定错误的列 或多列 我问这个问题是因为我想将错误映射回客户端的数据模型以指示错误的字段 例如
  • Java中使用正则表达式确定字符串是否为URL [重复]

    这个问题在这里已经有答案了 可能的重复 检查字符串是否为有效 URL 的最佳正则表达式是什么 https stackoverflow com questions 161738 what is the best regular express
  • 我们可以实例化一个抽象类吗?

    在一次采访中 有人问我 我们是否可以实例化一个抽象类 我的回答是 不 我们不能 但是 面试官告诉我 错了 我们可以 我对此争论了一下 然后他告诉我自己在家尝试一下 abstract class my public void mymethod
  • Chrome 崩溃:尝试在空对象引用上调用虚拟方法“long android.view.accessibility.AccessibilityNodeInfo.getSourceNodeId()”

    在处理网页的搜索表单 JavaScript CSS HTML 时 每次单击网络搜索图标并且输入字段获得焦点时 Chrome 浏览器 Android 10 都会崩溃 崩溃报告中的调试堆栈跟踪显示 Attempt to invoke virtu
  • 在循环中使用 if 语句? - 加工

    假设我必须在 for 循环中使用 if 语句 并且 for 循环在特定条件下触发 而 if 语句仅在 for 循环达到特定阶段时触发 例如 条件是一个计数器 当发生特定事件 例如球从屏幕上掉下来 时 该计数器会进行计数 每次球穿过屏幕时 都
  • 使用 TLS 证书 JDBC 连接到 Oracle 数据库

    我正在尝试用 Java 编写一个连接类来使用 JDBC 驱动程序连接到 Oracle 数据库 但我想保护用于连接到 Oracle 数据库的参数 例如 jdbcurl 用户名 密码 我必须使用 TLS 证书概念来连接到 Java 中的 Ora
  • 搜索 JTable 时 - 未获得正确的 ID

    所以我尝试在搜索名称后单击表 然后在其他表中编辑它 问题是我没有获得正确的 ID 而只获得第一个 ID JTable https i stack imgur com TnNIq png 搜索行动 https i stack imgur co
  • Sublime Text 3,如何添加右键?

    如何添加 Sublime Text 就像使用 Notepad 进行编辑一样 没什么大不了的 但可以节省时间 用记事本创建一个新的文本文档并将其保存到桌面上 将其重命名为 Open With Sublime bat 把这个放进去 echo o
  • 如何在首次运行时填充大型 SQLite 数据库

    我正在开发一个基于 SQLite 数据库的字典应用程序 该数据库包含超过 300 000 行 问题在于 最终形式的数据库文件由全文索引表组成 并且重量远远超过150Mb 我通过创建无内容的 fts4 表设法将 db 文件大小降至最低 数据库
  • 在 Graal.js 中使用 java 类

    使用 Graal js 如何将 java 类导入到 JS 脚本中 以下代码适用于 Nashorn JJS 但不适用于 Graal js 因为没有Java type 在graal中 我需要在某个时候调用truffle吗 var ArrayLi
  • Android-如何在指定时间后台下载数据

    我提前很抱歉没有发布任何代码 主要是因为我一生都无法弄清楚我需要如何做我需要做的事情 基本上 在一天中的指定时间间隔 例如下午 5 点 我希望我的应用程序从我的服务器下载一些数据并将其存储在设备上 这是为了减少每次运行应用程序时下载数据对我
  • 如何在使用 Web 服务时获取会话对象?

    如何在使用 Web 服务时获取会话对象 服务在两个程序之间调用 如何在使用 Web 服务时获取用户会话对象 不可能使用请求对象获取会话 因为当我们谈论服务时不会有请求或响应 如果您正在与JAX WS https jax ws dev jav
  • 使用 TestRestTemplate 和 MockRestServiceServer 时,解析异常而不是实体列表不起作用

    我有一个简单的控制器 CODE https github com joergi tryouts blob main kotlin mockrestserver src main kotlin io joergi kotlinmockrest
  • maven默认过滤器目录的好处[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 最近我发现了maven资源过滤并在文档中看到了一条注释 标准目录布局src main filters 资源过滤器文件 我注意到maven不搜索声
  • IntelliJ IDEA:忽略代码覆盖率中的琐碎方法

    在 IntelliJ IDEA 15 0 2 中 如何在测试覆盖率测量期间忽略琐碎的 getter 和 setter 琐碎方法 should be measure public void complex fancy interesting
  • 在java中的super调用之前创建一个对象

    考虑到简单的java代码是行不通的 public class Bar extends AbstractBar private final Foo foo new Foo bar public Bar super foo 我需要在之前创建一个
  • 注意通知持续时间

    是否可以将抬头通知的持续时间设置为无限 现在它只显示 5 秒 已经尝试过不同的事情 例如更改类别 但持续时间始终为 5 秒 这是我的代码 Notification notification notificationBuilder setCa
  • 线程缓存和 Java 内存模型

    我正在尝试了解 Java 内存模型和线程 据我了解 每个线程都有 主 内存的本地副本 因此 如果一个线程尝试更改int变量 例如某个对象的变量 它会缓存int变量 如果它更改它 其他线程可能看不到更改 但是如果线程缓存一些对象而不是 int
  • JPanel 无法使用 setSize 和 setPreferedSize

    请解释为什么它不起作用 您也可以发布解决方案来解决此问题 非常感谢您提前 public class Run extends JFrame Fields static JPanel jpanel private int x y Constru
  • javaFX,抛出 NullPointerException,位置是必需的

    我看过其他答案 但没有任何帮助我 抱歉 GUI新手只知道swing的基础知识 这是主课 package application import javafx application Application import javafx fxml

随机推荐

  • Ruby 使用什么哈希函数?

    Ruby 的哈希函数算法是什么 标准 Ruby 实现使用杂音哈希 http murmurhash googlepages com 对于某些类型 整数 字符串 来自 string c 1901 MurmurHash described in
  • _("text"),即下划线括号字符,有什么作用? [复制]

    这个问题在这里已经有答案了 在 C 代码中我遇到了这一点 test 它有什么作用 我试图自己查找它 但正如你可以想象的那样 搜索引擎不支持搜索 它正在调用名为的函数 例如 include
  • 依赖注入:海龟一路向下?

    所以我想知道单元测试如何处理外部依赖项 在这里和其他地方 我已经熟悉了依赖注入 以及它如何允许我们测试代码单元 A 但是 我对如何测试其他单元 B 和 C 感到困惑 这些单元现在拥有外部依赖项 以便它们可以将其注入到原始单元 A 中 例如
  • 在整数规划中使用最小/最大运算符

    我正在尝试使用整数规划优化目标函数 我必须使用Max我的函数中的运算符 我想知道有什么办法可以处理这个问题吗 其实我的问题类似于使用最小 最大within整数线性规划 https stackoverflow com questions 10
  • Tinkerpop 框架写入数据库 - 新手

    我第一次使用 Frames 但我的 Java 还很生疏 我一直坚持通过框架将信息写入数据库 我一直在关注文档并拥有一个 Person 界面 public interface Person Property name public Strin
  • Magento 新购物车属性

    嗨 我面临的问题一开始似乎很简单 但现在变成了一场真正的噩梦 我被要求向所有产品添加一个属性 即点 使用管理面板非常简单地完成 并将其总计作为可以设置规则的购物车属性 我非常肯定购物车属性是在以下位置定义的 class Mage Sales
  • 实例化接口而不使用实现类

    我有一个接口 称为 Planet 其实现类受到保护 并且我无法更改其访问修饰符 但是 我需要在主类中调用实现类的方法 例如 在实现类中 我有 public void orbit distance 我努力了 private Planet pl
  • 因此更改了 Git 的默认编辑器,现在我如何从 Git bash 调用它?

    我通过将以下内容应用于 Git 的全局配置来更改 Git 的默认编辑器 core editor C Program Files Notepad notepad exe multiInst notabbar nosession noPlugi
  • 如何删除CheckBox右侧不需要的空格?

    我正在研究自定义列表视图 我想展示一个CheckBox在自定义视图中 没有文字说明CheckBox 我发现它的右侧总是有一些空格CheckBox 这是我的布局 xml 文件
  • 使用 LINQ to SQL 时如何抽象出持久性代码?

    我喜欢 LINQ to SQL 但一直困扰我的是 在使用它时 我的存储库代码由 LINQ to SQL 框架生成 因此与 SQL Server 数据库紧密耦合 你们中是否有人以抽象 松散耦合的方式使用 LINQ to SQL 如果是 您是如
  • 当窗口顶部到达特定元素时将类添加到 DIV,并在未到达时将其删除

    我有一个 navigation在包装纸的顶部 我想添加一个 fixed类 当窗口顶部到达 bottomDIV 并在顶部时删除此类 bottom位于窗口范围内 它是在添加和删除 fixed 类之间切换 div div class naviga
  • “内存压力”是什么意思?

    通读一遍苔丝 费兰德斯的博客 https blogs msdn microsoft com tess 2008 04 17 how does the gc work and what are the sizes of the differe
  • 修改测试中的 Django 设置

    来自姜戈docs https docs djangoproject com en dev topics settings altering settings at runtime 您不应该在运行时更改应用程序中的设置 为了 例如 不要在视图
  • 带地图的“if”语句中的 Golang 语法

    我正在这里阅读教程 http www newthinktank com 2015 02 go programming tutorial http www newthinktank com 2015 02 go programming tut
  • 离子/云角 FacebookAuth 给出空错误

    我已将 ionic 云服务添加到我的应用程序中 并希望使用本机 FaceBook 身份验证 import FacebookAuth from ionic cloud angular this facebookAuth login 在 And
  • 如何制作可变参数 is_same?

    如何制作一个类模板来返回其任何可变参数类型是否等于第一种类型 我希望能够做到这一点 is same
  • Delphi 2006 - 优雅地终止线程并仍然触发 OnTerminate 处理程序的最佳方法是什么?

    我有一个线程有时会由于永远不会返回的 DLL 调用而冻结 我怀疑 在一般情况下 当您调用像 Indy 这样的阻塞例程时 是否有一种方法可以通过触发线程 OnTerminate 处理程序来从中恢复 如果我调用 TerminateThread
  • Material UI 自动完成自定义 renderInput

    我正在关注来自的各种例子https material ui com components autocomplete https material ui com components autocomplete 创建自定义自动完成 我正在尝试使
  • 用C++在特定路径写入文件

    我有这段代码可以成功写入文件 ofstream outfile path outfile write buffer size outfile flush outfile close 其余代码中的缓冲区和大小都可以 如何将文件放在特定路径中
  • 如何将 JUnit 与 Sublime Text 3 结合使用

    这是一个由两部分组成的问题 我正在尝试将 JUnit 用于我正在 Sublime Text 3 中处理的项目 我的文件设置看起来有点像这样 Vulcan Vulcan sublime project bin src core org vul