我需要一种快速的方法来进行一些测试,并且不想查看Dalvik调试显示器.我只想创建一个快速public static void main()并打印一些结果以进行调试.我以为我可以使用单元测试框架在控制台Stdout上获得一些结果,但是System.out.println()仍然可以使用日志(以及Log.d()). 因此,在运行单元测试时是否可以打印stdout? ant debug install test test: [echo] Running tests ... [exec] [exec] com.MainTest:. [exec] Test results for InstrumentationTestRunner=. 解决方案 我没有找到为单位测试启用stdout重定向的选项,但这是解决方法.运行单元测试(或在单独的外壳窗口中)之后: adb logcat|grep System.out 在Windows上,它可能应该是adb logcat
以下是关于 unit-testing 的编程技术问答
我们设法使詹金斯从测试中正确解析XML输出,并在有一个错误信息中包含了错误信息.因此,可以直接在詹金斯(Jenkins)的测试柜中看到发生错误的错误. 我们想做的是让詹金斯保持对数量输出,这基本上是与每种情况相关联的控制台输出.这将使任何人都能看到每个测试案例的实际控制台输出. 是否失败. 我还没有看到这样做的方法. *编辑 * 澄清 - 我希望能够直接在詹金斯接口中看到实际的测试输出,就像发生错误时相同的方式,但对于整个输出.我不希望詹金斯将文件保留为伪影. *编辑结束 * 有人可以帮助我们吗? 解决方案 在发布Junit测试结果报告(后构建动作)tick Retain long standard output/error复选框. 如果已检查,测试套件中的任何标准输出或错误将是 构建完成后保留在测试结果中. (这是指 仅针对打印到主机的其他消息,而不是输入故障堆栈 跟踪.)如果测试失败,则总是保留此类输出,但默认情况下 通过通过测试的
这是我的代码: import unittest import sys import os class DemoTest(unittest.TestCase): def test_one(self): print "test one" self.assertTrue(True) def test_two(self): print "test two" self.assertTrue(False) if __name__ == '__main__': dirpath = os.path.dirname(os.path.abspath(__file__)) sys.stdout = open(dirpath+'/test_logs/demo_test.stdout.log', 'w') sys.stderr = open(dirpath+'/test_logs/demo_test
您想为这样的函数写unittest cases: def test_me(a): for b in c: print do_something(a,b) 首先,我考虑了在字符串中收集do_something的输出,然后将其返回,以一起打印和测试整个输出.但这并不总是令人信服的,因为这样的循环可能会导致您的缓冲串变得很大,具体取决于情况.那么,当打印并未返回输出时,您该怎么做? 解决方案 print 打印到由于Python 2.6,您也可以通过将from __future__ import print_function添加到脚本的顶部来更改为print是一个函数,而不是语言构造.这样,您可以用自己的功能覆盖print 其他解决方案 在Python 3中,在bundicin print函数上很容易使用unittest.mock: from unittest.mock import patch, call @patch('builtin
有很多示例显示了如何重定向另一个应用程序的Stdout.但是,我想让该应用程序保持其stdout,并仅在父母过程中检索stdout的副本.这可能吗? 我的方案:我有一些测试(使用Visual Studio Test Runner)启动外部进程(服务器)进行测试.该服务器在其测试结果中输出了许多有用的调试信息. 我可以捕获过程输出并通过Trace.Writeline将其输出,以便稍后显示其在测试详细信息中.但是,很高兴在测试运行时查看其输出的服务器窗口以查看当前进度(测试可以运行很长时间). 所以我正在寻找复制此信息的方法,而不是简单地重定向. 有什么想法? 解决方案 编写一个将stdin转发到stdout的小程序,同时也对此做其他事情? 您可以用启动该服务器的命令替换命令,然后将其输出输出到上述实用程序.这样,您将"同时可以对输出进行程序化访问权限,并在输出窗口中实时看到它. 其他解决方案 这个可以为您服务吗? var
使用 googletest 框架框架? 例如,我想调用将错误写入控制台(STDERR)的函数. 现在,在调用测试中的函数时,我想断言没有输出出现. 或,也许我想测试错误行为,并想断言当我(故意)产生错误时打印了某个字符串. 解决方案 我在测试输出时已使用此片段将Cout调用重定向到弦流.希望它可能会引发一些想法.我以前从未使用过googletest. // This can be an ofstream as well or any other ostream std::stringstream buffer; // Save cout's buffer here std::streambuf *sbuf = std::cout.rdbuf(); // Redirect cout to our stringstream buffer or any other ostream std::cout.rdbuf(buffer.rdbuf()); // Use cou
简短问题 将数据纳入Python Unittest Case的最佳方法是什么? 背景 我的项目是使用Python的Unitest Module作为一种自动化方式执行一系列测试,这些测试需要在许多相同类型的董事会上运行.到目前为止,这非常适合UNITSEST模块的设计;扭曲是每个测试用例都需要知道运行特定信息以存储在Django数据库中. 需要传递的数据包括一个序列号,他们测试了董事会,日期和其他性质的其他内容.值得注意的是,从盒子上拉出X板X的人选择了测试木板的顺序,因此无法预测序列号. 思想 目前,我正在通过Pickle将所需的数据传递给测试案例.该方法在小型测试中正常工作,但是我担心的是读取和写入100k +次的同一文件,这为数据损坏提供了很大的空间( +不是那么快).我写了一个关于so 问题的答案我认为以我认为对该应用程序也可以很好地工作的方式重定向. 下一步将是在这些测试周围包裹的GUI.个人目标是能够通过命令行运行测试,然后将GUI调用相同的命令行
我有一些代码,可以根据加权随机提供内容.重量更大的事情更有可能被随机选择.现在,成为Couse的好红宝石主义者,想用测试涵盖所有这些代码.我想测试情况是否会根据正确的概率获取. 那么我该如何测试?为应该随机的事物创建测试,因此很难比较预期的实际VS.我有一些想法,以及为什么它们不错的工作: stub kernel.rand在我的测试中以返回固定值.这很酷,但是rand()被多次调用,我不确定我是否可以通过足够的控制来测试我需要的东西. 获取随机项目大量次,并比较实际比率与预期比率.但是,除非我能够运行它是无限的次数,否则这将永远不会是完美的,如果我在RNG中遇到厄运,可能会断断续续地失败. 使用一致的随机种子.这使得rng可重复,但仍然没有任何验证,即在80%的时间(例如). 那么,我可以使用哪种方法为随机概率编写测试覆盖范围? 解决方案 我认为您应该将目标分开.正如您提到的那样,一个是固执内核.例如,使用RSPEC,您可以做类似的事情: te
我正在尝试单位测试" A"类,该类称为" B"类的静态方法. " B类"本质上具有Google Guava缓存,该缓存从给定的钥匙中检索一个值(对象),或使用服务适配器将对象加载到缓存中(如果缓存失误). Service-Adapter类依次具有其他自动依赖关系来检索对象. 这些是用于说明目的的类: a类 public class A { public Object getCachedObject(String key) { return B.getObjectFromCache(key); } } B类B public class B { private ServiceAdapter serviceAdapter; public void setServiceAdapter(ServiceAdapter serAdapt) { serviceAdapter = serAdapt; }
为什么静态方法无法测试?请示例(如果可能的话,在PHP中). 解决方案 静态方法本身并不是无法测试的,但是如果被测试的对象称为静态方法,那么测试不能"进入"并将其称为存根方法.如果要测试的对象调用常规方法,则测试可以通过该方法的存根实现为其提供替代对象. 一般而言,刚性依赖性较少可测试,而依赖依赖性注入(Google IT)使代码更可测试. 例如,假设我们有一个静态方法getCurrentUser()我们正在测试的类使用,如下所示 class PostModel { //... public function getRecentPosts() { return $this->database->from('posts') ->where(array('user' => UserModel::getCurrentUser())) ->limit(10); } }
需要为以下代码编写单元测试,我想对类方法进行模拟,返回是或否,到目前为止,没有找到canmakepayments的好方法是类方法(+),似乎所有的ocmock方法似乎都是所有使用的方法( - ). 你们将不胜感激.谢谢. // SKPaymentQueue.h // StoreKit if ([SKPaymentQueue canMakePayments]){ .... } else{ ... } 解决方案 由于您无法通过提供不同的实例来拦截该方法,因此您可以为类方法做的是提供不同的类.这样的东西: + (Class)paymentQueueClass { return [SKPaymentQueue class]; } 呼叫点然后变为: Class paymentQueueClass = [[self class] paymentQueueClass]; if ([paymentQueueClass canMakePayments]
我已经写了使用PowerMockito的模拟静态功能来模拟静态类和方法的书面案例.但是我渴望在另一种静态方法中模拟一种静态方法.我确实看到了很少的示例,包括 this 帮助我或我不了解实际功能? (我毫无头绪) 例如.我有下面的课程,完整的代码为在这里. public static byte[] encrypt(File file, byte[] publicKey, boolean verify) throws Exception { //some logic here PGPPublicKey encryptionKey = OpenPgpUtility.readPublicKey(new ByteArrayInputStream(publicKey)); //some other logic here } public/private static PGPPublicKey readPublicKey(InputStre
我正在使用以下内容. Powermock-mockito 1.5.12 Mockito 1.95 junit 4.11 这是我的Utils类 public void InternalUtils { public static void sendEmail(String from, String[] to, String msg, String body) { } } 这是正在测试的课程的要点: public class InternalService { public void processOrder(Order order) { if (order.isSuccessful()) { InternalUtils.sendEmail(...); } } } 这是测试: @PrepareForTest({InternalUtils.cl
如何找到可能直接或间接调用给定方法的所有单元测试? 当我更改方法时,我希望知道要运行的最佳测试.必须有一个工具! 由于我们有很多接口,我对所有单元测试都感兴趣,这些单元测试在至少有一个路径var时在接口上调用界面上的方法. 或换句话说,当工具无法证明结果不受我已更改的方法影响时,我想要所有单元测试的列表. (我们在.NET上使用Nunit,并且进行了许多慢单位测试,直到我们对所有单位测试进行重构为快速,将要快) ) 另请参见: 如何直接或间接地找到使用给定Java方法的JUNIT测试 解决方案 Visual Studio 2010具有此确切的功能: http://blogs.msdn.com/b/phuene/archive/2009/12/12/07/test-impact-amact-analyase-inalysis-in-visual-studio-2010.aspx 由于您正在使用Nunit,因此您可以尝试此技术也可以运行mstest:
所以我有一个看起来像这样的课程: public class MyClassToTest() { MyStaticClass.DoSomethingThatIsBadForUnitTesting(); } 和看起来像这样的静态类: public static class MyStaticClass() { public static void DoSomethingThatIsBadForUnitTesting() { // Hit a database // call services // write to a file // Other things bad for unit testing } } (显然这是一个愚蠢的例子) 所以,我知道第二类在单元测试方面注定要失败,但是有任何方法可以脱离MyClassToTest类,以便我可以进行测试(而不实例化MyStat