在尝试实现登录到我的python项目时,我似乎遇到了一些问题.
我只是试图模仿以下配置:
但是,我不想在代码中执行此操作,而是希望将其放在配置文件中.
以下是我的配置文件:
[loggers]
keys=root
[logger_root]
handlers=screen,file
[formatters]
keys=simple,complex
[formatter_simple]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
[formatter_complex]
format=%(asctime)s - %(name)s - %(levelname)s - %(module)s : %(lineno)d - %(message)s
[handlers]
keys=file,screen
[handler_file]
class=handlers.TimedRotatingFileHandler
interval=midnight
backupCount=5
formatter=complex
level=DEBUG
args=('logs/testSuite.log',)
[handler_screen]
class=StreamHandler
formatter=simple
level=INFO
args=(sys.stdout,)
Run Code Online (Sandbox Code Playgroud)
问题是我的屏幕输出看起来像:
2010-12-14 11:39:04,066 - root - 警告 - 3
2010-12-14 11:39:04,066 - root - 错误 - 4
2010-12-14 11:39 :04,066 - root - CRITICAL - 5
我的文件是输出,但看起来与上面相同(尽管包含了额外的信息).但是,调试和信息级别也不会输出.
我在Python 2.7上
这是我显示失败的简单示例:
import os
import sys
import …
Run Code Online (Sandbox Code Playgroud) 我已经让Pydev运行起来了,几乎所有人都运行良好.但是我在docstrings上遇到了一些麻烦.
比方说,我有一个如下功能:
def _get_logging_statement(self):
"""Returns an easy to read string which separates items in the log file cleanly"""
result = "\n\n#============================================="
result += "\n# %-80s#"(self)
result =+ "\n\n#============================================"
return result
Run Code Online (Sandbox Code Playgroud)
假设我已经重写了repr以正确格式化该字符串.
当我将鼠标悬停在Eclipse上时,它会向我显示完整的文档字符串.但是,完整的实现也会显示在doctsting下面.
有没有办法只显示文档字符串?
我们正在将一个struts应用程序迁移到Spring MVC并利用@Controller注释将页面定向到各种方法调用.
我在确定一个好的重用策略时遇到了麻烦.
我们在许多页面中基本上都做同样的事情:
prepareView(..., ...); //Various params -- could likely be standardized
if (!allowedToView()) {
mav.setViewName(injectedErrorPage);
}
performBusinessLogic(..., ...); //Various params -- not seeing how to standardize
persistEntities();
finalizeView(..., ...); // Various params -- could likely be standardized
Run Code Online (Sandbox Code Playgroud)
有哪些策略用于创建最终方法,允许开发人员"忘记"这些流程?我考虑过制作一个抽象类,但由于每种方法的不同,我真的没有办法"标准化".
例如,我们有以下内容:
@RequestMapping("params="assign", method=RequestMethod.Post)
public ModelAndView assign(@SessionAttribute(value="sessionAttr") Pojo pojo,
@ModelAttribute("command") CommandPojo commandPojo,
BindingResult result) {
//Follows pattern above
}
@RequestMapping()
public ModelAndView filterResults(@SessionAttribute(value="sessionAttr") Pojo pojo,
@RequestAttribute("requestAttr") String requestAttr,
@ModelAttribute("command") CommandPojo2 commandPojo2,
BindingResult result) {
//Follows pattern above
}
Run Code Online (Sandbox Code Playgroud)
拥有最终方法需要将其分解为两个POJO(然后将调用描述性函数).我直接关注的是如何处理最终方法中的不同参数?我认为没有办法处理这种情况.
如果我们仍然可以使用受保护函数的"最终"方法,我们可以在需要时覆盖它.
我有一个用例,我需要将PDF返回给为我们生成的用户.看来我需要做的就是在这种情况下使用ResponseEntity,但我有一些不太清楚的事情.
我正在使用Spring 3.0.5.示例代码如下:
@Controller
@RequestMapping("/generate/data/pdf.xhtml")
public class PdfController {
@RequestMapping
public ResponseEntity<byte []> generatePdf(@RequestAttribute("key") Key itemKey) {
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.valueOf("application/pdf"));
if (itemKey == null || !allowedToViewPdf(itemKey)) {
//How can I redirect here?
}
//How can I set the response content type to UTF_8 -- I need this
//for a separate controller
return new ResponseEntity<byte []>(PdfGenerator.generateFromKey(itemKey),
responseHeaders,
HttpStatus.CREATED);
}
Run Code Online (Sandbox Code Playgroud)
我真的很想不接受响应......到目前为止,我的控制器都没有这样做,我不想把它全部带进来.
我真的很喜欢selenium 2按照惯例推动你使用PageObjects作为POJO,然后简单地使用PageFactory来实例化这个类中的字段.
我发现限制的是我们在许多不同的页面上重用了很多元素.最大的问题是这些重用的组件在出现在不同页面时没有相同的id/name; 但是我们为每个测试运行的测试是相同的.
举个例子,我们在很多地方收集日期.因此,此示例页面对象可能是(月,日字段已删除):
public class DatePageObject {
private WebDriver driver;
DatePageObject(WebDriver driver) {
this.driver = driver;
}
@FindBy( id = "someIdForThisInstance")
private WebElement year;
public void testYearNumeric() {
this.year.sendKeys('aa');
this.year.submit();
//Logic to determine Error message shows up
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以使用下面的代码简单地测试一下:
public class Test {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
DatePageObject dpo = PageFactory.initElements(driver, DriverPageObject.class);
driver.get("Some URL");
dpo.testYearNumeric();
}
}
Run Code Online (Sandbox Code Playgroud)
我真正想做的是有一个设置,通过Spring我可以将id/name/xpath等注入到应用程序中.
有没有办法可以做到这一点,而不会失去使用PageFactory的能力?
编辑1 - 添加理想的基础级别,处理自定义定位器和工厂.
public class PageElement {
private WebElement element;
private …
Run Code Online (Sandbox Code Playgroud) 我正在用XML编写一些SpEL语句,我无法让解析器确定何时需要转义字符.
我尝试过以下方法:
<... property="someProperty" value="#{ someBean.aMethodOnTheBean('st\'ring') }" />
Run Code Online (Sandbox Code Playgroud)
但是添加\'似乎没有逃脱单引号,我一直收到解析器异常.
有没有办法逃避这些价值观?
这看起来很简单,但我似乎无法在Eclipse中找到更改此设置的设置.
我更喜欢我的游戏机有深色和白色文字.我将打印件留给stderr作为红色默认值.
我的问题在于,当我收到异常时,它被设置为非常深蓝色,所以如果不突出显示链接,我就无法轻易看到它的文本.
我没有在控制台首选项中看到它,也没有在其他各种设置位置看到它.
这似乎应该非常简单,但我没有看到如何访问我的GebConfig.groovy文件中的值.我尝试过以下方法:
userName = "myUserName"
properties = {
userName = "myUserName"
}
props {
userName = "myUserName"
}
environments {
chrome = {
driver = { new ChromeDriver() }
userName = "myUserName" //with and without {}
}
}
Run Code Online (Sandbox Code Playgroud)
然而我似乎无法通过以下方式访问这些属性:
browser.driver.properties.userName
Run Code Online (Sandbox Code Playgroud)
我能够在配置文件中设置这些属性,然后在我的规范中访问它们吗?我似乎得到了默认的属性集,这只是系统属性.
在以下情况下,如何在AuthorizedUser的电子邮件中覆盖验证:
public class Account {
@Length(min = 1, max = 100,
message = "'Email' must be between 1 and 100 characters in length.")
@NotNull(message = "'Email' must not be empty.")
protected String email;
@Length(min = 1, max = 50,
message = "'Name' must be between 1 and 50 characters in length.")
private String name;
}
public class AuthorizedUser extends Account {
@Length(min = 1, max = 40,
message = "'Field' must be between 1 and 50 characters in length.")
private …
Run Code Online (Sandbox Code Playgroud) 我希望将Spring Profiles和Configurations的灵活性与JUnit测试的并行运行结合起来,JUnit测试使用Parameterized或Theories注释.有没有办法合并所有这些功能,让我的单元测试运行?
我一直遇到的问题是参数需要访问注入的bean,这是不可能的,因为使用@Parameters或@DataPoints注释的函数应该是静态的.我真的很讨厌必须将它连接到每个类甚至某个静态函数,因为我希望能够快速切换配置文件而无需更改Java代码.这可能吗?
java ×7
eclipse ×2
python ×2
spring ×2
spring-mvc ×2
code-hinting ×1
colors ×1
geb ×1
groovy ×1
ide ×1
junit ×1
logging ×1
preferences ×1
pydev ×1
spock ×1
spring-el ×1
unit-testing ×1