我在不同的文件夹中有十几个测试用例.在根目录中有一个测试运行器.
unittest\
package1\
test1.py
test2.py
package2\
test3.py
test4.py
testrunner.py
Run Code Online (Sandbox Code Playgroud)
目前,我手动将四个测试用例添加到测试套件中
import unittest
from package1.test1 import Test1
from package1.test2 import Test2
from package2.test3 import Test3
from package2.test4 import Test4
suite = unittest.TestSuite()
suite.addTests(unittest.makeSuite(Test1))
suite.addTests(unittest.makeSuite(Test2))
suite.addTests(unittest.makeSuite(Test3))
suite.addTests(unittest.makeSuite(Test4))
result = unittest.TextTestRunner(verbosity=2).run(suite)
if not result.wasSuccessful():
sys.exit(1)
Run Code Online (Sandbox Code Playgroud)
如何让测试运行器自动测试所有测试用例?如:
for testCase in findTestCases():
suite.addTests(testCase)
Run Code Online (Sandbox Code Playgroud) 从python文档(http://docs.python.org/library/unittest.html):
import unittest
class WidgetTestCase(unittest.TestCase):
def setUp(self):
self.widget = Widget('The widget')
def tearDown(self):
self.widget.dispose()
self.widget = None
def test_default_size(self):
self.assertEqual(self.widget.size(), (50,50),
'incorrect default size')
def test_resize(self):
self.widget.resize(100,150)
self.assertEqual(self.widget.size(), (100,150),
'wrong size after resize')
Run Code Online (Sandbox Code Playgroud)
这是如何调用那些测试用例:
def suite():
suite = unittest.TestSuite()
suite.addTest(WidgetTestCase('test_default_size'))
suite.addTest(WidgetTestCase('test_resize'))
return suite
Run Code Online (Sandbox Code Playgroud)
是否可以将参数custom_parameter插入到WidgetTestCase中,如:
class WidgetTestCase(unittest.TestCase):
def setUp(self,custom_parameter):
self.widget = Widget('The widget')
self.custom_parameter=custom_parameter
Run Code Online (Sandbox Code Playgroud)
?
我有testSuite几个Python testCases.
如果testCase失败,testSuite继续下一个testCase.我希望能够testSuite在testCase失败或能够决定是testSuite继续还是停止时停止.
我有一个Currency类,我使用NHibernate持久保存到我的数据库.Currencyclass看起来像这样:
public class Currency : Entity
{
public virtual string Code { get; set; }
public virtual string Name { get; set; }
public virtual string Symbol { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我用这样写了一个单元测试[TestCase]:
[TestCase(6,Result = new Currency ({ Code="GBP", Name="British Pound", Symbol="£"}))]
public Currency CanGetCurrencyById(int id)
{
ICurrencyRepo currencies = new RepoFactory().CreateCurrencyRepo(_session);
Currency c = currencies.GetById<Currency>(id);
return c;
}
Run Code Online (Sandbox Code Playgroud)
我知道这是错的,但我不确定如何写它.结果可以object吗?
我正在实施一个基于Web服务的大学管理系统.该系统将某些课程添加到数据库中.下面是我正在使用的代码.
Course.java
public class Course {
private String courseName;
private String location;
private String courseId;
public String getCourseId()
{
return courseId;
}
public void setCourseId(String courseId) {
this.courseId = courseId;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
Run Code Online (Sandbox Code Playgroud)
然后另一个文件如下
CourseDaoImpl.java
public class CourseDaoImpl implements IDao {
Connection conn = null;
Statement stmt = null; …Run Code Online (Sandbox Code Playgroud) 我尝试为ProductDAO类运行JUnit测试用例,这是spring Web应用程序的一部分.但它仍然失败.我不确定我的test-context.xml文件.
我ProductDAOImplTest在路径中有类,src/test/java并且ProductController在栈中提到的类被保存在路径中src/main/java.
ProductDAOImplTest
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/test/resources/test-context.xml")
@Transactional
public class ProductDAOImplTest {
@Autowired
private ProductDAO productDAO;
@Test
public void testAdd() {
fail("Not yet implemented");
}
@Test
public void testEdit() {
fail("Not yet implemented");
}
@Test
public void testGetAll() {
fail("Not yet implemented");
}
@Test
public void testGet() {
fail("Not yet implemented");
}
@Test
public void testRemove() {
fail("Not yet implemented");
}
@Test
public void testGetByPage() {
fail("Not yet implemented");
}
} …Run Code Online (Sandbox Code Playgroud) 我想运行一小组NUnit测试用例作为预签入健全性检查,并在我的on-checkin和nightly测试运行中运行更全面的测试用例.
所以我希望我能用"类别"属性修饰某些测试用例,并且只有那些测试用例在预签入时运行.但是,这似乎不起作用 - 如果我包含该类别,则运行所有测试用例.
有没有办法限制通过类别运行的测试用例数量?
[TestFixture]
public class TestAddition
{
[TestCase(1, 2, 3), Category("PreCheckin")]
[TestCase(2, 4, 6)]
[TestCase(3, 6, 9)]
public void AdditionPassTest(int first, int second, int expected)
{
var adder = new Addition();
var total = adder.DoAdd(first, second);
Assert.AreEqual(expected, total);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试运行这个:
C:\> "C:\Program files (x86)\Nunit 2.6.4\bin\nunit-console.exe" /nologo ^
NUnitTestCase.dll /labels /include=PreCheckin
ProcessModel: Default DomainUsage: Single
Execution Runtime: net-3.5
Included categories: PreCheckin
***** NUnitTestCase.TestAddition.AdditionPassTest(1,2,3)
***** NUnitTestCase.TestAddition.AdditionPassTest(2,4,6)
***** NUnitTestCase.TestAddition.AdditionPassTest(3,6,9)
Tests run: 3, Errors: 0, Failures: 0, Inconclusive: 0, Time: …Run Code Online (Sandbox Code Playgroud) 使用Team Foundation Server,给定"Test Suite"类型的WorkItem,如何编写查询以选择与该Test Suite关联的所有测试用例?
这个方法在我所有的 JUnit 测试用例中都是空的。这个方法有什么用?
Sonarqube 抱怨
“添加嵌套注释,解释为什么此方法为空,抛出 UnsupportedOperationException 或完成实现。”
我可以通过添加一些评论来绕过这个,但我只想知道为什么有必要。
我对整个编程很陌生,但这是我的问题:
我过去常常通过右键单击项目来在 Eclipse 中添加 JUnit 测试用例,然后只需添加New > JUnit Test Case。
目前,我无法实现任何测试方法,因为 Eclipse 在线告诉我
import static org.junit.jupiter.api.Assertions.*;
Run Code Online (Sandbox Code Playgroud)
错误信息
The type org.junit.jupiter.api.Assertions is not accessible.
Run Code Online (Sandbox Code Playgroud)
我在 IDE 中遇到的错误:
我尝试了以下方法:
没有任何帮助。
它在旧项目中工作得很好。
包资源管理器的外观如下:
我缺少什么?
testcase ×10
java ×4
junit ×4
unit-testing ×4
c# ×3
python ×3
nunit ×2
test-suite ×2
dao ×1
eclipse ×1
spring ×1
spring-boot ×1
tfs ×1
web-services ×1