我正在尝试创建不基于单元测试的测试类.
这个类下的这个方法
class ClassUnderTestTests:
def test_something(self):
Run Code Online (Sandbox Code Playgroud)
从命令行调用py.test或在PyCharm中运行此测试时(在它自己的模块上),无法检测并运行.
这个
def test_something(self):
Run Code Online (Sandbox Code Playgroud)
可以检测并运行类外的相同方法.
我想把我的测试分组在类下,除非我遗漏了一些我正在遵循py.test规范来做到这一点.
环境:Windows 7,pyCharm,py.test设置为测试运行器.
我有一个从Panel创建的全局Graphics对象.定期从磁盘中拾取图像并使用Graphics.DrawImage()将其绘制到面板中.它适用于几次迭代,然后我得到以下有用的例外:
System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.
at System.Drawing.Graphics.CheckErrorStatus(Int32 status)
at System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y)
at System.Drawing.Graphics.DrawImage(Image image, Point point)
Run Code Online (Sandbox Code Playgroud)
当我完成它时处理图像对象时,我排除了内存泄漏.我知道图像没有损坏,并且可以正常读取,因为程序在面板停止显示之前执行了一段时间.
我在使用PictureBox时遇到了同样的问题,但这次至少我得到了一个错误而不是什么.
我检查了任务管理器中的GDI对象和USER对象,但是当应用程序正常工作时,它们总是大约有65个用户对象和165个GDI对象.
我确实需要尽快解决这个问题,并不是说我可以在.NET系统库中保留断点并查看确切执行失败的位置.
提前致谢.
编辑:这是显示代码:
private void DrawImage(Image image)
{
Point leftCorner = new Point((this.Bounds.Width / 2) - (image.Width / 2), (this.Bounds.Height / 2) - (image.Height / 2));
_graphics.DrawImage(image, leftCorner);
}
Run Code Online (Sandbox Code Playgroud)
图像加载代码:
private void LoadImage(string filename, ref Image image)
{
MemoryStream memoryStream = DecryptImageBinary(Settings.Default.ImagePath + filename, _cryptPassword);
image = Image.FromStream(memoryStream);
memoryStream.Close();
memoryStream.Dispose();
memoryStream = null; …Run Code Online (Sandbox Code Playgroud) 我正在使用ASP.NET表单身份验证将用户登录到我们正在开发的网站.
部分功能是"记住我"复选框,如果用户检查,则会记住用户一个月.
用户登录的代码如下:
public static void Login(HttpResponse response, string username,
bool rememberMeChecked)
{
FormsAuthentication.Initialize();
FormsAuthenticationTicket tkt = new FormsAuthenticationTicket(1, username, DateTime.Now,
DateTime.Now.AddMinutes(30), rememberMeChecked,
FormsAuthentication.FormsCookiePath);
HttpCookie ck = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(tkt));
ck.Path = FormsAuthentication.FormsCookiePath;
if (rememberMe)
ck.Expires = DateTime.Now.AddMonths(1);
response.Cookies.Add(ck);
}
Run Code Online (Sandbox Code Playgroud)
web.config中的相关部分是这样的:
<authentication mode="Forms">
<forms loginUrl="Home.aspx" defaultUrl="~/" slidingExpiration="true" timeout="43200" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
这会记录用户正常但如果他们不使用该网站则在半小时后将其记录下来,尽管其持久性属性(rememberMeChecked)设置为true,如果为true,则cookie设置为在一个月后过期.这里有什么我想念的吗?
在此先感谢,F
我想从内存流或字节数组加载SWF对象而不是磁盘上的文件.
AxShockwaveFlash类提供了加载SWF的方法和属性,提供了作为字符串的磁盘路径,但我还没有看到另一种方法.有一个InlineData属性,但通常该类没有文档,我不知道这个属性是做什么的.它可以完成吗?
谢谢F.
我有一个用C#编写的客户端应用程序,想要读取MOV文件的持续时间.我必须在Windows窗体中创建并托管Quicktime COM控件,然后在其中加载影片并获取持续时间.在我的情况下,这是不可行的,因为客户端应用程序不是Windows窗体.
我实际做的另一种方法是打开MOV文件raw,检查字节,直到你在剪辑的电影标题原子('mvhd')之前的12个字节,并从那里获得时间刻度和持续时间.这个黑客我不熟悉,因为如果Apple将来更改文件格式可能无法正常工作.
我宁愿避免将MOV加载到控件中,因为我只想获得剪辑的持续时间而没有别的.理想情况下,我需要提供一个字符串,其中包含mov文件的路径到应用程序,并获得这样的持续时间.有没有人用非托管代码完成它?