我们的源代码库中有很多电子表格(xls).这些通常使用gnumeric或openoffice.org进行编辑,主要用于使用dbUnit填充数据库进行单元测试.在我知道的xls文件上没有简单的方法来做差异,这使得合并非常繁琐且容易出错.
我试图将电子表格转换为xml并进行常规差异,但它确实感觉它应该是最后的手段.
我想像git
处理文本文件一样执行diffing(和合并).我怎么做,例如发行时git diff
?
Java中的枚举实现了Comparable
接口.这本来是很好的覆盖Comparable
的compareTo
方法,但在这里它被标记为最终.Enum
's 的默认自然顺序compareTo
是列出的顺序.
有谁知道为什么Java枚举有这个限制?
我有iso-8859-1编码的java源文件.当我运行ant时,我得到"警告:编码UTF-8的不可映射的字符".如果我运行ant -Dfile.encoding = iso-8859-1或者将encoding ="ISO-8859-1"添加到每个javac语句中,我可以避免这种情况.
有没有办法在build.xml中全局设置属性? <property name ="file.encoding"value ="ISO-8859-1">不起作用.我知道我可以添加一个foo = ISO-8859-1属性并为每个javac语句设置encoding ="$ {foo}",但我试图避免这种情况.
我有一个紧凑的JSON字符串,我想在Java中很好地格式化它,而不必先将它反序列化 - 例如就像jsonlint.org那样.有没有提供这个的图书馆?
类似的XML解决方案也很不错.
我可以通过执行以下任一操作找到当前的git分支名称:
git branch | awk '/^\*/ { print $2 }'
git describe --contains --all HEAD
Run Code Online (Sandbox Code Playgroud)
但是当处于分离的HEAD状态时,例如在Jenkins maven构建中的后构建阶段(或在Travis git fetch中),这些命令不起作用.
我目前的工作解决方案是:
git show-ref | grep $(git log --pretty=%h -1) | sed 's|.*/\(.*\)|\1|' | sort -u | grep -v HEAD
Run Code Online (Sandbox Code Playgroud)
它显示在其HEAD提示上具有最后一次提交的任何分支名称.这很好,但我觉得有一个强大的git-fu的人可能有一个更漂亮的解决方案?
我刚刚意识到DBUnit本身并不创建表(请参阅如何使用纯JDBC和HSQLDB使用DBUnit进行测试而不会遇到NoSuchTableException?).
DBUnit有没有办法从数据集或dtd自动创建表?
编辑: 对于像HSQLDB这样的内存数据库的简单测试,可以使用原始方法自动创建表:
private void createHsqldbTables(IDataSet dataSet, Connection connection) throws DataSetException, SQLException {
String[] tableNames = dataSet.getTableNames();
String sql = "";
for (String tableName : tableNames) {
ITable table = dataSet.getTable(tableName);
ITableMetaData metadata = table.getTableMetaData();
Column[] columns = metadata.getColumns();
sql += "create table " + tableName + "( ";
boolean first = true;
for (Column column : columns) {
if (!first) {
sql += ", ";
}
String columnName = column.getColumnName();
String type = resolveType((String) table.getValue(0, columnName)); …
Run Code Online (Sandbox Code Playgroud) 我有一个包含几个(java/gradle
)项目的repo :
project-a/
project-b/
project-c/
Run Code Online (Sandbox Code Playgroud)
我想创建一个矩阵构建配置,每个项目一个构建.而且我只想构建那个项目,如果有变化的话.
这可能吗?
我可以轻松创建一个脚本,通过使用来检查文件夹是否受到影响$TRAVIS_COMMIT_RANGE
.但是我如何使用它.travis.yml
呢?
Travis中存在一个问题,即添加对包含/排除路径的支持,以便何时触发构建.有了矩阵支持,这将解决我的问题.
我正在尝试将DBUnit与简单的JDBC和HSQLDB一起使用,并且不能完全使用它 - 即使我早先使用了DBUnit和Hibernate并取得了巨大的成功.这是代码:
import java.sql.PreparedStatement;
import org.dbunit.IDatabaseTester;
import org.dbunit.JdbcDatabaseTester;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.XmlDataSet;
import org.junit.Test;
public class DummyTest {
@Test
public void testDBUnit() throws Exception {
IDatabaseTester databaseTester = new JdbcDatabaseTester("org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem", "sa", "");
IDataSet dataSet = new XmlDataSet(getClass().getResourceAsStream("dataset.xml"));
databaseTester.setDataSet(dataSet);
databaseTester.onSetup();
PreparedStatement pst = databaseTester.getConnection().getConnection().prepareStatement("select * from mytable");
}
}
Run Code Online (Sandbox Code Playgroud)
这是有问题的dataset.xml:
<dataset>
<table name="mytable">
<column>itemnumber</column>
<column>something</column>
<column>other</column>
<row>
<value>1234abcd</value>
<value>something1</value>
<value>else1</value>
</row>
</table>
</dataset>
Run Code Online (Sandbox Code Playgroud)
这个测试给了我一个NoSuchTableException:
org.dbunit.dataset.NoSuchTableException: mytable
at org.dbunit.database.DatabaseDataSet.getTableMetaData(DatabaseDataSet.java:282)
at org.dbunit.operation.DeleteAllOperation.execute(DeleteAllOperation.java:109)
at org.dbunit.operation.CompositeOperation.execute(CompositeOperation.java:79)
at org.dbunit.AbstractDatabaseTester.executeOperation(AbstractDatabaseTester.java:190)
at org.dbunit.AbstractDatabaseTester.onSetup(AbstractDatabaseTester.java:103)
at DummyTest.testDBUnit(DummyTest.java:18)
Run Code Online (Sandbox Code Playgroud)
如果我删除databaseTester.onSetup()行,我会得到一个SQLException: …
我使用Spring,Jersey和Jackson来提供生成JSON的API.
我的@Component有一个@Get方法,它返回Response.ok(entity).build().
输出非常紧凑.如何使输出漂亮/格式化?
java ×6
dbunit ×2
git ×2
json ×2
pretty-print ×2
travis-ci ×2
ant ×1
bash ×1
branch ×1
build ×1
comparable ×1
compareto ×1
create-table ×1
dataset ×1
datetime ×1
diff ×1
enums ×1
formatting ×1
hsqldb ×1
jackson ×1
java-8 ×1
java-time ×1
javac ×1
jdbc ×1
jenkins ×1
jersey ×1
junit ×1
merge ×1
mocking ×1
spring ×1
xls ×1