问题列表 - 第24090页

是否有自动方法确保代码的所有部分都经过单元测试?

我已经为我的类编写了JUnit测试,并希望它能告诉我我的代码中是否有任何部分未经过单元测试.有没有办法做到这一点?

java junit unit-testing

7
推荐指数
2
解决办法
151
查看次数

使用lxml查找基于xsd类型的元素

我试图获取具有lxml 2.x的特定xsd类型的元素列表,我无法弄清楚如何遍历特定类型的xsd.

架构示例:

<xsd:element name="ServerOwner" type="srvrs:string90" minOccurs="0">
<xsd:element name="HostName" type="srvrs:string35" minOccurs="0">
Run Code Online (Sandbox Code Playgroud)

示例xml数据:

<srvrs:ServerOwner>John Doe</srvrs:ServerOwner>
<srvrs:HostName>box01.example.com</srvrs:HostName>
Run Code Online (Sandbox Code Playgroud)

理想的功能如下:

    elements = getElems(xml_doc, 'string90')

    def getElems(xml_doc, xsd_type):
      ** xpath or something to find the elements and build a dict
      return elements
Run Code Online (Sandbox Code Playgroud)

python xml xsd lxml

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

在启动时启动oracle dequeue

我收到了Oracle的以下错误,

ORA-25226: dequeue failed, queue string.string is not enabled for dequeue
Run Code Online (Sandbox Code Playgroud)

以下是官方文件中的原因和行动:

Cause: The queue has not been enabled for dequeue.
Action: Enable the queue using START_QUEUE.
Run Code Online (Sandbox Code Playgroud)

但是每次重启数据库时都会发生此错误,是否有任何配置设置为启动数据库启动时出队?

谢谢!

database oracle oracle-aq

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

在Visual Studio中输出控制台应用程序而不是控制台

使用Eclipse在Java中执行控制台应用程序时,我看到输出放在IDE本身的文本框中,而不是像Visual Studio中那样弹出控制台.这很方便,因为即使在程序退出之后,我仍然可以很好地利用其中所写的文本,因为它在我再次运行之前不会被删除.是否可以使用Visual Studio实现类似的功能?我知道这不是做

System.Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)

我可以

System.Diagnostics.Debug.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)

但它不是一回事,因为你在输出窗口中得到了很多"垃圾",就像所有加载的符号一样.

更好的是,当您运行应用程序而不是让控制台运行时,是否可以在IDE中完成所有操作?

c# console visual-studio

116
推荐指数
3
解决办法
18万
查看次数

VARCHAR() 子句中指定的数字意味着什么?

只是为了澄清一下,通过指定类似 VARCHAR(45) 的内容意味着它最多可以占用 45 个字符?我记得几年前我听某人说括号中的数字不是指字符数,然后那个人试图向我解释一些相当复杂的东西,我不明白并且已经忘记了。

那么CHAR和VARCHAR有什么区别呢?我确实搜索了一下,发现 CHAR 为您提供了列大小的最大值,如果您的数据具有固定大小,最好使用它;如果您的数据大小变化,最好使用 VARCHAR。

但是,如果它为您提供了该列所有数据的列大小的最大值,那么当您的数据大小变化时使用它不是更好吗?特别是当您不知道数据大小有多大时。VARCHAR需要指定大小(CHAR其实不需要吧?),是不是比较麻烦?

mysql sql database types

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

Python-daemon不会杀死它的孩子

使用python-daemon时,我正在创建子进程likeo:

import multiprocessing

class Worker(multiprocessing.Process):
   def __init__(self, queue):
      self.queue = queue # we wait for things from this in Worker.run()

   ...

q = multiprocessing.Queue()

with daemon.DaemonContext():
    for i in xrange(3):
       Worker(q)

    while True: # let the Workers do their thing
       q.put(_something_we_wait_for())
Run Code Online (Sandbox Code Playgroud)

当我用Ctrl-C或SIGTERM等杀死父守护进程(即不是Worker)时,孩子们不会死.怎么杀了孩子?

我的第一个想法是使用atexit杀死所有的工人,喜欢:

 with daemon.DaemonContext():
    workers = list()
    for i in xrange(3):
       workers.append(Worker(q))

    @atexit.register
    def kill_the_children():
        for w in workers:
            w.terminate()

    while True: # let the Workers do their thing
       q.put(_something_we_wait_for())
Run Code Online (Sandbox Code Playgroud)

但是,守护进程的孩子们处理起来很棘手,我不得不考虑如何做到这一点并提出意见.

谢谢.

python children daemon multiprocessing zombie-process

20
推荐指数
1
解决办法
8065
查看次数

有没有办法识别c/c ++库的版本?

例如,如何获取/usr/lib/libz.a的版本?如果可以获取其他有用的信息,例如编译器/ arch等,那将是很好的.

我想知道这个的原因是gcc总是说当我编译我的程序并与特定的版本化libz链接时,它忽略了我在命令行中提供的libz.gcc认为/usr/lib/libz.a是一个合适的.

c c++ unix

3
推荐指数
1
解决办法
1279
查看次数

Grails GORM(Hibernate)查询

我正在尝试在GORM中执行以下sql语句

select * from table1 where table1.x not in
      (select x from table 2 where y='something');
Run Code Online (Sandbox Code Playgroud)

所以,我有两个表,需要找到表1中不在表2中的条目.在Grails中

def xx= table2.findByY('something')
    def c = table1.createCriteria()
    def result= c.list {
      not (
        in('x', xx)
    )
}
Run Code Online (Sandbox Code Playgroud)

语法错了,我不知道如何 sql逻辑中模拟.

作为一个学习点,如果有人也可以告诉我为什么grails/groovy中的减号( - )运算符不能与列表一起使用.我尝试单独获取x和y,并执行x.minus(y),但它不会更改列表.我在Grails列表上的Groovy上看到了一个解释- 没有用?,但我希望定义的列表是本地的.

非常感谢.

grails hibernate grails-orm

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

为什么它不会违反分段?

据说下面的代码会导致分段违规:

#include <stdio.h> 
#include <string.h> 

void function(char *str) {
   char buffer[16];

   strcpy(buffer,str);
}

int main() {
  char large_string[256];
  int i;

  for( i = 0; i < 255; i++)
    large_string[i] = 'A';

  function(large_string);
  return 1;
}
Run Code Online (Sandbox Code Playgroud)

它的编译和运行方式如下:

gcc -Wall -Wextra hw.cpp && a.exe
Run Code Online (Sandbox Code Playgroud)

但没有任何结果.

注意

上面的代码确实会覆盖ret地址等等,如果你真的明白它下面会发生什么.

RET地址将0x41414141要具体.

重要 这需要深刻的堆栈知识

c memory stack segmentation-fault

3
推荐指数
1
解决办法
312
查看次数

捕获数据包后会发生什么?

我一直在读关于NIC捕获数据包后会发生什么,我读的越多,我就越困惑.

首先,我已经读过,传统上,在NIC捕获数据包之后,它会被复制到内核空间中的内存块,然后被复制到用户空间,以用于处理数据包数据的任何应用程序.然后我读到了DMA,其中NIC直接将数据包复制到内存中,绕过CPU.那么NIC - >内核内存 - >用户空间内存流仍然有效吗?此外,大多数NIC(例如Myricom)是否使用DMA来提高数据包捕获率?

其次,RSS(Receive Side Scaling)在Windows和Linux系统中的工作方式是否相似?我只能找到关于RSS如何在MSDN文章中工作的详细解释,他们在这里讨论RSS(和MSI-X)如何在Windows Server 2008上运行.但RSS和MSI-X的相同概念应该仍然适用于Linux系统,对吧?

谢谢.

此致,Rayne

linux rss windows-installer packet dma

10
推荐指数
2
解决办法
4065
查看次数