小编chr*_*kar的帖子

如何使用xUnit进行调试?

我正在学习xUnit,到目前为止,已经发现它是一个非常有用的工具.这让我重新考虑我的一些编码策略而不是TDD.

但是,我遇到了一个有趣的问题.我的测试用例失败了.没有真正的担忧,但我该如何调试呢?

特别是我的测试用例由于"索引缺失"错误或其他类似错误而失败.它在断言声明中没有失败.我现在需要的是运行Visual Studio调试器的测试用例的一些方法,以便我可以看到不同变量的状态.

我不会发布代码,因为这种情况必然会再次出现.有谁知道如何调试测试用例本身?

差点忘了!我正在使用,

  • Visual Studio 2010 Ultimate(Dreamspark许可证)
  • xUnit 1.9

我的工作流程涉及使用xUnit GUI运行程序来运行测试.

如果我问的是不可能的,有人可以建议我可以使用的替代测试套件有我想要的吗?

.net c# debugging unit-testing xunit

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

如何改变graphviz的默认字体大小?

我使用doxygen + graphviz来记录我的代码.graphviz在生成图像方面做得很好.

有没有办法更改graphviz的默认fontsize?默认值为14,但我想使用12代替.

更改单个元素(如节点,子图,边缘等)的字体大小真是太痛苦了.

更新:

这里参考的是我在doxygen中使用的代码,(文本字段已经重命名,当然)

@dot
 strict digraph {
   node [shape = box, fontsize = 12];
     subgraph cluster_main {
       fontsize = 12;
       shape    = box;
       label    = "main";
       subgraph cluster_main_common {
         fontsize = 12;
         shape    = box;
         label    = "common";
         subgraph cluster_main_common_source {
           fontsize = 12;
           shape    = box;
           label    = "source"
           subgraph cluster_file1 {
             fontsize = 12;
             shape    = box;
             label    = "file1.c";
             gSystem [label = "var1" URL = "\ref var1"];
           }
           subgraph cluster_file2 {
             fontsize = …
Run Code Online (Sandbox Code Playgroud)

doxygen graphviz

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

如何用Python计算CRC32以匹配在线结果?

我正在尝试使用Python计算/生成一些随机字符串的CRC32哈希值,但它们与我在线源生成的值不匹配.这是我在电脑上做的事情,

>>> import binascii
>>> binascii.crc32('hello-world')
-1311505829
Run Code Online (Sandbox Code Playgroud)

另一种方法,

>>> import zlib
>>> zlib.crc32('hello-world')
-1311505829
Run Code Online (Sandbox Code Playgroud)

上述结果相同的事实告诉我,我正在正确地调用该函数.但是,如果我转到以下在线资源,

对于字符串"hello-world",它们都给出相同的值= b1d4025b

有谁知道我需要做什么,以获得匹配的结果?

当我输入这个问题时,我想到我可能需要将我的Python结果转换为十六进制,

>>> hex(zlib.crc32('hello-world'))
'-0x4e2bfda5'
Run Code Online (Sandbox Code Playgroud)

不幸的是,这也没有帮助.:(

python crc32

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

如何表示B树节点?

我们在课堂上学习B树,并被要求在代码中实现它们.老师已经选择了编程语言给我们,我想尝试用C#做.我的问题是以下结构在C#中是非法的,

unsafe struct BtreeNode
        {
            int key_num;        // The number of keys in a node
            int[] key;          // Array of keys
            bool leaf;          // Is it a leaf node or not?
            BtreeNode*[] c;     // Pointers to next nodes
        }
Run Code Online (Sandbox Code Playgroud)

具体来说,不允许创建指向结构本身的指针.我可以使用一些解决方法或替代方法吗?我很确定在托管代码中必须有一种方法可以做到这一点,但我无法弄明白.

编辑:埃里克的回答指出了我正确的方向.这是我最终使用的,

class BtreeNode
{
        public List<BtreeNode> children;       // The child nodes
        public static int MinDeg;               // The Minimum Degree of the tree
        public bool IsLeaf { get; set; }        // Is the current node a leaf or not?
        public List<int> …
Run Code Online (Sandbox Code Playgroud)

.net c# b-tree

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

如何在Eclipse中的多行注释中关闭"*"?

使用Eclipse编码时,如何关闭启动多行注释时出现的"*"注释?

而不是看到这个,

/**
* Here is a comment
* some more 
*/
Run Code Online (Sandbox Code Playgroud)

我能得到这个吗?

/**
  Here is a comment
  some more
*/
Run Code Online (Sandbox Code Playgroud)

如果你想知道"/**"是因为我使用doxygen.

c eclipse eclipse-cdt

10
推荐指数
1
解决办法
4056
查看次数

如何在同一个 CLI 终端中在屏幕上显示 `gitbranch` 的输出?

抱歉,我无法表达我的问题。我在 CLI 上运行(zsh如果重要的话),使用 git 版本2.20.0并在 macOS 上运行(我想我在家里的 Ubuntu 系统上也遇到过它)。

git branch问题:如何在同一 CLI 屏幕上显示输出?也就是说,如果我跑步,

$ git branch
$
Run Code Online (Sandbox Code Playgroud)

它会弹出一个新屏幕/窗口(在我的 CLI 内),向我显示我的所有分支。按q关闭屏幕并返回 shell。问题是我不记得我拥有的分支机构的名称!我希望它们打印在屏幕上!

理想输出,

$ git branch
* master
branch_01
branch_02
temp_branch
experiment_2_delete
$
Run Code Online (Sandbox Code Playgroud)

一个可疑的解决方法是执行以下操作,

$ git branch > stuff.txt
$ cat stuff.txt
* master
branch_01
branch_02 
...
$
Run Code Online (Sandbox Code Playgroud)

但它会在当前目录中创建一个新的文本文件,这会变得混乱。记忆告诉我,这曾经是git有效的方式。最近发生了一些变化,这让我发疯!有什么办法可以恢复旧的行为吗?

git shell command-line-interface

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

static - 仅用于限制范围?

staticC中的关键字是否仅用于将变量的范围限制为单个文件?

我需要知道我是否理解这一点.请假设以下3个文件,

在file1.c

int a;
Run Code Online (Sandbox Code Playgroud)

file2.c中

int b;
Run Code Online (Sandbox Code Playgroud)

file3.c中

static int c;
Run Code Online (Sandbox Code Playgroud)

现在,如果3个文件一起编译,那么变量"a"和"b"应该具有全局范围,并且可以从3个文件中的任何一个访问.但是,变量"c"是静态的,只能从file3.c访问,对吗?

请问static在C任何其他用途?(除了限制变量的范围,如上所示?)

c static scope

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

我们需要在T​​CL中"取消设置"变量吗?

是否需要良好的TCL代码?如果我们不在脚本中使用"unset"关键字会发生什么?我应该知道的任何不良影响?

我继承了一些遗留代码,由于"未设置"而导致的错误 - 不存在的变量正在推动我的问题!

tcl unset

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

使用 Ansible 在 Ubuntu 14.04 上自动安装 MySQL

我正在尝试使用 Ansible 设置一个涉及几台 Ubuntu 机器的 Vagrant 环境,并且在编写 Ansible Playbook 以自动化该过程时遇到了麻烦。主要是,我按照这个答案的说明进行操作 - /sf/answers/1861922121/

这是我从运行剧本中得到的错误片段;

PLAY [web] ******************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [business-web1]

TASK: [Install MySQL] ********************************************************* 
failed: [business-web1] => (item=mysql-server) => {"failed": true, "item": "mysql-server"}
stderr: start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.5 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.5; however:
  Package mysql-server-5.5 is not configured yet.

dpkg: …
Run Code Online (Sandbox Code Playgroud)

mysql ansible ubuntu-14.04

5
推荐指数
2
解决办法
991
查看次数

Android 应用程序中域名到 IP 的自定义映射

我有一个在 android webview 中呈现的 web 应用程序。当用户单击按钮时,URL http://www.mywebapp.com/将呈现

是否可以将此域映射到我的本地网络中的 IP,仅适用于我的 Android 应用程序?

就像是,

192.168.33.10 mywebapp.com

由于我自己编译 Android 应用程序,我希望这个问题可能有一些基于代码的解决方案。

被拒绝的方法:

  1. 生根 Android 设备以编辑其hosts文件。我正在尝试使用办公室中的共享测试设备来完成此操作。

  2. 在网络上设置自定义 DNS 服务器并让 Android 手机指向它 - 这是一个全局更改 - 无论使用什么解决方案,它都应该只影响 Android 应用程序的行为,而不会影响其他任何内容。另外,我对办公室无线网络没有任何控制/权限。

dns android webview

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

在调试时,单个线程应用程序会在核心之间跳转吗?

我正在尝试OSS使用Eclipse CDT 调试多架构程序(沙箱配置下的Das u-boot启动加载程序 - 它生成标准的linux可执行文件).我喜欢它呈现的东西(精彩的GUI工作!).例如,它为一个线程显示了这样的东西,

Thread [1] 9480 [core:2] (Suspend:Step)
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,"核心编号"会改变(在英特尔i3上运行时,值在0和3之间).这最初使我相信调试器向我展示了应用程序的不同处理上下文(即我认为它在所有4个处理器内核上运行).我花了很多时间尝试安装"多核gbd调试器"并对其进行配置,但不得不承认最终失败.

当我在一个周末之后回到问题时,我注意到虽然"核心号码"会改变,但是线程ID没有(另外,我找不到(在源代码中)fork()(或类似的)系统调用的位置由...制成.

我目前的理论是该程序确实作为单线程应用程序运行,但由于我不理解的原因,喜欢在我的系统的不同处理器核心之间跳转.

我的问题如下;

  1. 我目前的理论是否正确?
  2. 如果是这样,我可以期望__any__在调试环境之外运行的单线程应用程序的这种行为吗?
  3. 从优化的角度来看,在核心之间移动时会有一些上下文切换,即使对于单线程应用程序也是如此.跳跃有什么实际好处吗?

c linux gdb eclipse-cdt u-boot

4
推荐指数
1
解决办法
354
查看次数

使用 AES/ECB/PKSC5 加密,将 Java 迁移到 Python

我的任务是在一个项目上实施 AES 加密。参考代码是用 Java 编写的 - 它需要转换为 Python。在整理我的笔记写一个 SO 问题时,我不小心偶然发现了答案!希望其他人觉得这很有用,我将在这里提及我的笔记作为“分享您的知识”类型的问题。

要求是使用具有给定密钥的 AES 加密消息。这是参考代码(Java)的简化外观,

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
import sun.misc.BASE64Encoder;


public class EncryptAES {

    private static String toHexString(byte[] data) {        
        StringBuffer buf = new StringBuffer();
        for (int i = 0; i < data.length; ++i) {
            String s = Integer.toHexString(data[i] & 0XFF);
            buf.append((s.length() == 1) ? ("0" + s) : s);
        }
        return buf.toString();
    }

    public static String encrypt(String input, String key) {
        byte[] crypted = null;
        try {
            SecretKeySpec …
Run Code Online (Sandbox Code Playgroud)

python java encryption aes

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